1. ホーム
  2. string

[解決済み] Bashで文字列が部分文字列を含むかどうかをチェックする方法

2022-03-18 09:49:54

質問

Bashで文字列を入力しています。

string="My string"

別の文字列が含まれているかどうかをテストするにはどうすればよいですか?

if [ $string ?? 'foo' ]; then
  echo "It's there!"
fi

ここで ?? は私の未知演算子です。私は echogrep ?

if echo "$string" | grep 'foo'; then
  echo "It's there!"
fi

ちょっと不器用そうですね。

どのように解決するのか?

を使用することができます。 マーカスの回答(* ワイルドカード) 二重括弧を使えば、case文の外側でも可能です。

string='My long string'
if [[ $string == *"My long"* ]]; then
  echo "It's there!"
fi

なお、針文字列のスペースはダブルクォートで挟む必要があり、また * ワイルドカードは外側に置く。また、単純な比較演算子が使用されていることにも注意してください(例. == ではなく、正規表現演算子 =~ .