Bashで文字列を比較する
if文で文字列比較
文字列は、if文を使って比較。
以下は、if文で利用するオプション。
オプション | 比較の内容 |
---|---|
= | 文字列同士が等しいか |
!= | 文字列同士が異なるか |
-n | 文字列の長さが1以上か |
-z | 文字列の長さが0か |
サンプル
以下、サンプル。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #!/bin/bash foo=aaa var=aaa if [ ${foo} = ${var} ]; then echo "equal" fi if [ ${foo} != "bbb" ]; then echo "not equal" fi # 変数fooのサイズが1以上であれば真 if [ -n ${foo} ]; then echo "not null" fi # 変数fooのサイズが0であれば真 foo= if [ -z ${foo} ]; then echo "null" fi |
実行結果。
1 2 3 4 5 | -bash-3.2$ ./test_compare_str.sh equal not equal not null null |
文字列の中に、特定の文字が含まれていることを判定する方法。
以下、サンプル。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | #!/bin/bash text="hoge" if [ $(echo $text | grep -e 'h') ]; then echo "hoge include h" else echo "hoge doesn't include h" fi if [ $(echo $text | grep -e 'a') ]; then echo "hoge include a" else echo "hoge doesn't include a" fi |
実行結果。
1 2 3 | -bash-3.2$ ./test_search_string.sh hoge include h hoge doesn't include a |