Bash - 一般的なカウンターを作成する方法は? [閉鎖]

Bash - 一般的なカウンターを作成する方法は? [閉鎖]

だから私は私が呼ぶもの(公式名であるかどうかはわかりません)を「カウンター」にし、基本的に特定の範囲や数字に関連する作業をするのに慣れています。

#!/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
  • ++ii = i + 1)#iは1になります
  • 1 < 3->正しい
  • echo 1
  • ++ii = i + 1)#iは2になる
  • '2<3`->真
  • echo 2
  • ++ii = i + 1)#私は3になる
  • 3 < 3-> false # ループが終了します。

おすすめ記事