FM 라디오 방송국 이름에 노래 이름을 두 번 표시하는 스크립트를 만들고 있습니다. 라디오 방송국 이름은 8자로 제한됩니다. 다음 줄이 있다고 가정해 보겠습니다.Best Direction - I feel good
코드는 다음과 같습니다. ("PS"는 라인 소프트웨어의 시작 부분입니다. 이름을 변경하는 명령이라는 것을 알아두세요)
echo "PS Best" > $fifo;
sleep 1;
echo "PS Directio" > $fifo;
sleep 1;
echo "PS n - I" > $fifo;
sleep 1;
echo "PS feel" > $fifo;
sleep 1;
echo "PS good" > $fifo;
sleep 1;
//repeat this one more time
Bash 스크립트에서 이를 어떻게 수행합니까? 나는 모른다.
답변1
fold
팔로우GNU 핵심 유틸리티:
a="Best Direction - I feel good"
fold -s -w 8 <<< "$a" | while read -r line; do
echo "PS $line" > "$fifo"
sleep 1
done
$fifo로 출력:
최고의 PS PS 방향 nnJC PS 느낌 좋은 PS
fold
$fifo와 동일한 출력이 없습니다 .
a="Best Direction - I feel good"
while [[ -n $a ]]; do # loop until $a is empty
if [[ ${#a} -gt 8 ]]; then
b="${a:0:8}" # get first 8 characters of $a
c="${b% *}" # crop all from right incl. first whitespace
else
c="$a"
fi
echo "PS $c" > "$fifo"
d="${a#$c}" # crop $c left from string $a
a="${d# *}" # remove a leading whitespace
sleep 1
done