パスワード:
$i
これは、count変数が5に達すると停止し、将来のシェルコードを実行し続けるアニメーションを作成することです。
chars="/-\|"
while :; do
for (( i=0; i<${#chars}; i++ )); do
sleep 0.1
echo -en "${chars:$i:1}" "\r"
if [ $i == 5 ]
then
break
fi
done
done
# code below are never get executed.
ベストアンサー1
次の2つを追加できます。
- 文字変数の最大値は3なので(0から始めて合計3〜4文字まで計算されます)、したがって3箇所で切れることがあります(ループ/内部ループの中断の場合)。
- 外部ループ/whileループを停止するには、それを中断する条件が必要です。ここではwhileループは必要ありません。
解決策1:whileループを使用しない
chars="/-\|"
for (( i=0; i<${#chars}; i++ )); do
sleep 0.1
echo -en "${chars:$i:1}" "\r"
if [ $i == 3 ]; then
break;
fi
done
解決策2:スクリプトを終了するシャットダウンを使用して終了できます。
chars="/-\|"
while :; do
for (( i=0; i<${#chars}; i++ )); do
sleep 0.1
echo -en "${chars:$i:1}" "\r"
if [ $i == 3 ]; then
exit;
fi
done
done