Bashシェルスクリプトで二つの文字列が等しいかどうかを比較する方法と、特定の文字列が含まれているかどうかを確認する方法を説明します。
1.文字列同等の比較
基本的には ==
演算子で二つの文字列が等しいかどうかを比較することができます。
#!/bin/bash
str1="Hello"
str2="World"
if [ $str1 == $str2 ]
then
echo "Equal"
else
echo "Not Equal"
fi
Output:
$ bash example.sh
Not Equal
ところで、上記のコードは、任意の文字列の長さが0の場合、つまり、Emptyのときにエラーが発生することがあります。
たとえば、次のコードを実行させると、条件の unary operator expected
エラーが発生します。
#!/bin/bash
str1="Hello"
str2=""
if [ $str1 == $str2 ]
then
echo "Equal"
else
echo "Not Equal"
fi
Output:
$ bash example.sh
ex_string_com.sh: line 7: [: Hello: unary operator expected
Not Equal
1.1安全の文字列の比較
Emtpy Stringにエラーが発生していない、安全に文字列を比較するには、次のように変数を ""
で包まばされます。その後、一方がEmptyでも [ "$str1" == "" ]
のような形で比較して、問題が発生しません。
#!/bin/bash
str1="Hello"
str2=""
if [ "$str1" == "$str2" ]
then
echo "Equal"
else
echo "Not Equal"
fi
Output:
$ bash example.sh
Not Equal
1.2変数が特定の文字列であることを確認し
変数が特定の文字列であることを確認するには、次のように変数の代わりに文字列と比較します。
#!/bin/bash
str1="Hello"
if [ "$str1" == "Hello" ]
then
echo "Hello"
else
echo "Not Hello"
fi
Output:
$ bash example.sh
Hello
2.特定の文字列が含まれていることを確認
下の二つの方法で文字列に特定の文字列が含まれているかどうかを確認することができます。
[[ "$STRING1" == *STRING2* ]]
[[ "$STRING1" =~ STRING2 ]]
2.1例1
#!/bin/bash
str='This is the shell script example.'
if [[ "$str" == *shell* ]]; then
echo "It contains 'shell'"
fi
Output:
$ bash example.sh
It contains 'shell'
2.1例2
#!/bin/bash
str='This is the shell script example.'
if [[ "$str" =~ "shell" ]]; then
echo "It contains 'shell'"
fi
Output:
$ bash example.sh
It contains 'shell'
3.文字列がEmptyかどうかを確認
[ -z $STRING ]
で -z
は、文字列の長さが0のときにTrueを返すテスト演算子です。
#!/bin/bash
str1=""
if [ -z $str1 ]
then
echo "Empty string"
else
echo "Not empty string"
fi
Output:
$ bash example.sh
Empty string
References
Related Posts
- Bash Shell - 実行時間の測定方法
- Bash Shell - 除算で切り捨て、切り上げ、切り上げる
- Bash Shell - 数値が正であるか負であるかを確認する方法
- Bash Shell - 独自のスクリプトファイル名を取得する
- Bash Shell - 文字列の出力方法(echo, printf)
- Bash Shell - seq命令による反復文の実装と例
- Bash Shell - Fileテスト演算子
- Bash Shell - 無限ループ (Infinite loop)
- Bash Shell - 数値比較演算子
- Bash Shell - 文字列比較演算子
- Bash Shell - 大文字、小文字に変換 (Uppercase, Lowercase)
- Bash Shell - rootでストリップを実行したことを確認する
- Bash Shell - 命令実行結果を変数に保存する
- Bash Shell - selectによる選択メニューの実装
- Bash Shell Script - 変数が定義されていることを確認する方法
- Bash Shell Script - sleep使用方法
- Bash Shell Script - ファイルが存在することを確認
- Bash Shell Script - 文字列のトリミング(substring、split)
- Bash Shell Script - 日付、時刻を取得する
- Bash Shell Script - Case条件文
- Bash Shell Script - ファイルの読み方