GNU/Linux >> Linux の 問題 >  >> Linux

Bashシェルスクリプトで文字列を比較する方法

文字列の処理は、プログラミング言語の一部です。 Bashシェルスクリプトも例外ではありません。構文もほとんど同じです。

このクイックチュートリアルでは、Bashシェルスクリプトの文字列を比較する方法を紹介します。

bash文字列の比較

Bashで文字列を比較する方法は次のとおりです。

if [ "$string1" == "$string2" ]

変数を使用する代わりに、文字列を直接使用することもできます。

if [ "$string1" == "This is my string" ]

適切な例を挙げてお見せしましょう。

2つの文字列が等しいかどうかを確認します

2つの文字列が等しいかどうかを確認する場合は、次の例をご覧ください。

#!/bin/bash
string1="MyString"
string2="MyString"
if [ "$string1" == "$string2" ]
then
    echo "Equal Strings"
else
    echo "Strings not equal"
fi

ヒント:スペースに注意を払う

[の間にはスペースが必要です 変数名と等式演算子==。ここのスペースのいずれかを見逃すと、「単項演算子が必要です」や「]」がないなどのエラーが表示されます。

Bashで文字列が等しくないかどうかを確認します

品質をチェックする代わりに、反対のことをして不等式をチェックしましょう。 Bashは否定演算子も提供するため、シェルスクリプトで「等しくない場合」の条件を簡単に使用できます。

if [ "$string1" != "Not MyString" ]

完全な例は次のようになります:

#!/bin/bash
string1="MyString"

if [ "$string1" != "Not MyString" ]
then
    echo "Not Equal Strings"
else
    echo "Strings equal"
fi
Bashで文字列がnullまたは空かどうかを確認します

C ++のような他の言語とは異なり、Bashでは、1つのコマンドで文字列がnullか空かを確認できます。

if [ -z "$VAR" ]

-zは、変数の長さがゼロかどうかを実際にチェックします。変数が設定されていない場合、または変数が空(「」に等しい)の場合、長さはゼロになるため、条件はtrueを返します。

完全な例はここで見ることができます:

#!/bin/bash
string1=
string2=""
if [ -z "$string1" ]
then
    echo "Null Strings"
fi
if [ -z "$string2"]
then
    echo "Empty String"
fi

bashスクリプトでのシングルブラケット「[]」とダブルブラケット「[[]]」の使用に関する注意

次のように、二重角かっこでifステートメントを使用することもできます。

if [[ "$string1" == "My String" ]]

単一のブラケットは古いPosixの規則であり、いくつかの欠点があります。変数を二重引用符で囲んでおらず、変数が未定義の場合、コードから消えて構文エラーが発生します。

if [ $string1 == "My String" ]

変数$string1が空であるか、上記のコードで定義されていない場合、その行は

と同等になります。
if [  == "$string2" ]

結論

この簡単なチュートリアルが、bashシェルスクリプトの文字列を比較するのに役立つことを願っています。 bashsleepコマンドに関する別のクイックチュートリアルも読むことをお勧めします。

ご質問やご提案がございましたら、下にコメントを残してください。


Linux
  1. Bashで文字列を数値として評価する方法

  2. Bashで文字列を連結する方法

  3. Bashでドット区切りバージョン形式の2つの文字列を比較するには?

  1. Linuxシェルスクリプトで数値と文字列を比較する方法

  2. 方法:無制限の Bash/シェル履歴?

  3. bash シェルでファイルのセクションを grep する方法

  1. Bashは、どのように呼び出されているかをどのように知っていますか?

  2. Linuxでシェルスクリプトを使用してJsonを解析する方法は?

  3. cronシェルを変更する方法(shからBash)?