文字列の処理は、プログラミング言語の一部です。 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は否定演算子も提供するため、シェルスクリプトで「等しくない場合」の条件を簡単に使用できます。
if [ "$string1" != "Not MyString" ]
完全な例は次のようになります:
#!/bin/bash
string1="MyString"
if [ "$string1" != "Not MyString" ]
then
echo "Not Equal Strings"
else
echo "Strings equal"
fi
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コマンドに関する別のクイックチュートリアルも読むことをお勧めします。
ご質問やご提案がございましたら、下にコメントを残してください。