0

Busybox ash でプログラミングするとstr、次のプログラムでは、期待どおりにすべてのwhileループで変更されますが、while ループの後、str再び空になります。/tmp/term_mon_ttysテストファイルです。

#!/bin/ash
cnt=0
str=
cat /tmp/term_mon_ttys | while read line; do
    str="$str $cnt"
    cnt=`expr $cnt + 1`
done
echo $str

ただし、上記のコードを

#!/bin/ash
cnt=0
str=
while [ $cnt -lt 5 ]; do
    str="$str $cnt"
    cnt=`expr $cnt + 1`
done
echo $str

whileループの後、 str は になり0 1 2 3 4ます。

誰もこの問題に気づきましたか?

4

1 に答える 1