初心者ガイドBASH - ものを比較する

08の01

初心者ガイドBASH - ものを比較する

BASHチュートリアル - 文字列の比較。

BASHチュートリアルの前の部分では、 条件文を見てきました。

そのガイドは非常に長いものでしたが、実際にはロジックの流れを制御する方法しか示していませんでした。 このガイドは、変数を比較するさまざまな方法を示しています。

上の画像は今週のガイドの最初の例を示しています:

#!/ bin / bash

name1 = "ゲーリー"
name2 = "ボブ"

if ["$ name1" = "$ name2"]
次に
エコー "名前が一致する"
else
エコー "名前が一致しない"
fi


上記のスクリプトでは、name1とname2という2つの変数を定義し、それらに値 "gary"と "bob"を割り当てました。 変数が引用符で囲まれているので、変数は文字列変数と呼ばれ、チュートリアルの進行に合わせてより適切になります。

すべてのスクリプトは$ name1と$ name2の値を比較し、出力が文字列「一致する」と一致し、文字列「文字列が一致しません」を出力しない場合は一致します。

$ name1と$ name2変数の前後の引用符は、いずれかの値が設定されていなければスクリプトは引き続き動作するため重要です。

たとえば、$ name1が決して設定されなかった場合、 ""と "bob"を比較します。 引用符がなければ、あなたは明らかに失敗する= "ボブ"のままになります。

!=表記を使用して、次のように等しくないと定義することもできます。

if ["$ name1"!= "$ name2"]

08の02

初心者ガイドBASH - 文字列の比較

BASHチュートリアル - 文字列の比較。

上記の例では、テストは同じ2つの文字列を比較し、アルファベットでbobの前にゲーリーが来るか質問します。

明らかに答えは「いいえ」です。

スクリプトは、より小さい演算子(<)を導入します。 小なり演算子もリダイレクトに使用されるので、スラッシュ(\)でエスケープする必要があります。なぜなら、これは上記のスクリプトでは「$ name1」\ <"$ name2"を比較していないからです。

明らかにそれよりも小さいのは、 \ を使用する代わりに。

例えば

if ["$ name1" \> "$ name2"]

03/08

初心者ガイドBASH - 文字列の比較

BASHチュートリアル - 文字列の比較。

変数に値があるかどうかをテストする場合は、次のテストを使用できます。

if [-n $ name2]

上記のスクリプトでは、$ name2に値が与えられているかどうかテストしました。メッセージがない場合は "ボブがありませんでした。

04/08

初心者ガイドBASH - 文字列の比較

BASHチュートリアル - 文字列の比較。

過去のスライドでは、変数が設定されているかどうかについて説明しました。 変数が設定されていることもありますが、実際には値が設定されていない場合もあります。

例えば:

name1 = ""

変数に値があるかどうか(すなわち、長さがゼロであるかどうか)をテストするには、次のように-zを使います。

if [-z $ name1]

上記のスクリプトでは、$ name1を長さゼロの文字列に設定してから-zを使って比較しました。 $ name1の長さが0の場合、 "garyが夕方に出ています"というメッセージが表示されます。

08の05

BASH初心者ガイド - 数字の比較

BASHチュートリアル - 数値の比較。

これまでのところ、すべての比較は文字列に対するものでした。 数字の比較はどうですか?

上記のスクリプトは、2つの数値を比較する例を示しています。

#!/ bin / bash

a = 4
b = 5

if [$ a = $ b]
次に
エコー "4 = 5"
else
エコー "4は5に等しくない"
fi

変数を数値に設定するには、引用符を使用せずに変数を設定するだけです。 数字を等号と比較することができます。

しかし、次の演算子を使用して2つの数値を比較することをお勧めします。

[$ a -eq $ b]

06の08

BASH初心者ガイド - 数字の比較

BASHチュートリアル - 数値の比較。

数値が別の数値よりも小さいかどうか比較する場合は、より小さい演算子(<)を使用できます。 文字列の場合と同様に、小なり演算子をスラッシュでエスケープする必要があります。 (\ <)。

数値を比較するより良い方法は、代わりに次の表記法を使用することです。

例えば:

if [$ a -lt $ b]

if [$ a -le $ b]

if [$ a -ge $ b]

if [$ a -gt $ b]

07/08

BASH初心者ガイド - 数字の比較

BASHチュートリアル - 数値の比較。

最後に、このガイドでは、2つの数値が異なるかどうかをテストする場合は、less演算子とgreater than演算子(<>)または-neを次のように使用できます。

if [$ a <> $ b]

if [$ a -ne $ b]

08の08

BASH初心者ガイド - 比較演算子 - 要約

このガイドの最初の3つの部分を見逃している場合は、次のリンクをクリックして見つけることができます。

ガイドの次の部分では、私は算術をカバーします。