だから私は私が呼ぶもの(公式名であるかどうかはわかりません)を「カウンター」にし、基本的に特定の範囲や数字に関連する作業をするのに慣れています。
#!/bin/bash -x
get_total2=$(echo "$@")
while [ $get_total2 -gt 0 ]; do
echo $get_total2
get_total2=$(expr $get_total2 - 1)
done
echo
使用例
しかし、コードが示すように、これは「通常の」カウンタ(通常の順序と同様)ではなく逆カウンタです...私はこれを行う方法を決して理解していません。これは簡単だと確信していますが、単に過度に考えるだけです。
上記のコードを逆順ではなく「一般」計算として機能させるにはどうすればよいですか?
ベストアンサー1
for
ループを使用してbashから計算できます。たとえば、次のことを考えてみましょう。
#!/bin/bash -x
total="${1}"
for ((i = 0; i < total; ++i)); do
echo "${i}"
done
実行すると、次のような結果が得られます。
$ ./ex.sh 3
0
1
2
$
ループfor
は次のように構成されています。
for ((init; condition; update))
- この
init
部分はループが始まり、変数を初期化する前に一度実行されます。 condition
このセクションはループを通過するたびに評価されます。条件が次の場合、false
ループは停止します。update
このセクションはループを通過するたびに評価されます。++i
短い形式ですi = i + 1
この場合、屋根ふきを通して次の一連のステップが得られます。
i = 0
0 < 3
->正しいecho 0
++i
(i = i + 1
)#iは1になります1 < 3
->正しいecho 1
++i
(i = i + 1
)#iは2になる- '2<3`->真
echo 2
++i
(i = i + 1
)#私は3になる3 < 3
-> false # ループが終了します。