アンドロイド

bash(カウンター)で変数をインクリメントおよびデクリメントする方法

目次:

Anonim

Bashスクリプトを記述するときの最も一般的な算術演算の1つは、変数の増分と減分です。 これは、ループでカウンターとして最もよく使用されますが、スクリプト内の他の場所でも発生する可能性があります。

インクリメントとデクリメントは、数値変数の値にそれぞれ値(通常は 1 )を加算または減算することを意味します。 算術展開は、二重括弧 ((…)) および $((…)) か、 let 組み込みコマンドを使用して実行できます。

Bashには、変数をインクリメント/デクリメントする複数の方法があります。 この記事ではそれらのいくつかについて説明します。

+ および - 演算子の使用

変数をインクリメント/デクリメントする最も簡単な方法は、 + および - 演算子を使用することです。

i=$((i+1)) ((i=i+1)) let "i=i+1"

i=$((i-1)) ((i=i-1)) let "i=i-1"

このメソッドを使用すると、任意の値で変数をインクリメント/デクリメントできます。

以下は、 until ループ内で変数をインクリメントする例です。

i=0 until do echo i: $i ((i=i+1)) done

i: 0 i: 1 i: 2 i: 3

+= および -= 演算子

上記で説明した基本的な演算子に加えて、bashは代入演算子 += および -= も提供します。 これらの演算子は、演算子の後に指定された値で左オペランドの値をインクリメント/デクリメントするために使用されます。

((i+=1)) let "i+=1"

((i-=1)) let "i-=1"

次の while ループでは、変数 i 値を 5 減らします。

i=20 while do echo Number: $i let "i-=5" done

Number: 20 Number: 15 Number: 10 Number: 5

++ および -- 演算子の使用

++ および -- 演算子は、それぞれオペランドを 1 ずつ増加および減少させ、値を返します。

((i++)) ((++i)) let "i++" let "++i"

((i--)) ((--i)) let "i--" let "--i"

演算子は、オペランドの前または後に使用できます。 彼らはまたとして知られています:

  • プレフィックス増分: ++i プレフィックス減分:-- i++ ポストフィックス増分: i++ ポストフィックス減分: i--

プレフィックス演算子は、最初に演算子を1ずつインクリメント/デクリメントしてから、演算子の新しい値を返します。 一方、後置演算子は、インクリメント/デクリメントされる前に演算子の値を返します。

次の例は、演算子の前後で ++ 演算子が使用される場合の動作を示しています。

x=5 y=$((x++)) echo x: $x echo y: $y

x: 6 y: 5

x=5 y=$((++x)) echo x: $x echo y: $y

x: 6 y: 6

以下は、bashスクリプトで後置インクリメンターを使用する方法の例です。

#!/bin/bash i=0 while true; do if]; then exit 1 fi echo i: $i ((i++)) done

これらの演算子を使用することの欠点は、変数を1だけ増分または減分できることです。

結論

Bashの変数の増分および減分は、さまざまな方法で実行できます。 どの方法を使用しても、結果は同じです。

ご質問やフィードバックがある場合は、お気軽にコメントをお寄せください。

バッシュループターミナル