私のコードは次のとおりです
#!/bin/bash
while true; do
COUNTER=$((COUNTER +1))
echo $COUNTER
if (($COUNTER%3 == 0)); then
echo "Counter now is 3"
sleep 2
fi
if (($COUNTER%6 == 0)); then
echo "Counter now is 6"
sleep 2
fi
if (($COUNTER%9 == 0)); then
echo "Counter now is 9"
sleep 2
fi
if (($COUNTER%12 == 0)); then
echo "Counter now is 12"
sleep 2
fi
if (($COUNTER%15 == 0)); then
echo "Counter now is 15"
sleep 2
exit
fi
done
私の結果は次のとおりです
./test2.sh
1
2
3
Counter now is 3
4
5
6
Counter now is 3
Counter now is 6
7
8
9
Counter now is 3
Counter now is 9
10
11
12
Counter now is 3
Counter now is 6
Counter now is 12
13
14
15
Counter now is 3
Counter now is 15
Counter now is 3
なぜ毎回または時々より多く表示されるのですかecho
?追加のコンテンツを表示したくありません。echo
答え1
そのテストでテストした内容が出力に指定されている場合は、より正確になります。
if (( COUNTER%3 == 0 )); then
echo 'COUNTER is a multiple of 3'
fi
ここにテストがあります。考えてみると、6、9、12、15も3の倍数です。
この短いスクリプトでは、カウンタの実際の値がいくつかの値の倍数であることを確認するには、onの代わりにCOUNTER
直接テストすることをお勧めします。COUNTER%somevalue
if (( COUNTER == 3 )); then
echo 'COUNTER is 3'
fi
$
変数が算術コンテキストで使用される場合、変数は必要ありません。
答え2
結果が偽だからです。
- 「数は…」と言うと出力は何ですか?
- 「Count is」より良い言葉がありますか?
- どこで
echo
計算されますか? (計算することはecho
...)
この問題を解決したら、問題が何であるかを理解する必要があります。