IF文は、単語に特定の文字が含まれている場合はtrueを返します。

IF文は、単語に特定の文字が含まれている場合はtrueを返します。

単語に特定の文字が含まれている場合、trueを返すにはif文が必要です。たとえば、

var="information"
if [ $var contain "i" ]; then
....
else
...
fi

ベストアンサー1

switchまたはcaseこれに似たものを使うのはどうですか?

#!/bin/sh

v="information"
case $v in
    *f*)
        echo "found \"f\" in ${v}";;
    *)
        echo "no match found in ${v}"
esac
exit

針が変数に保存されている場合は、パターンと見なされないように引用することが重要です。

case $haystack in
  *"$needle"*) echo match
esac

それがなければ、例えばどんな$needle場合*でも?一致します。大きな干し草の山(それぞれ空でない干し草の山)

とにかく、必ずしも$needle単一文字である必要はありません。どの文字列でも機能します。

多くのシェルでは、空でないバイトシーケンスでも機能します。有効な文字を形成しなくても、すべてのバイトが文字に分割されるわけではありません。たとえば、é一部の実装では、UTF-8(0xc3 0xa9)でエンコードされた文字列に0xc3バイトを見つけることができません。逆に、ロケールのエンコーディングiが0x3 0x69(ASCIIなどの0x69)エンコーディングを持つBIG5-HKSCSの場合、一部のシェルが内部的に見つかる可能性があります。ξξi

おすすめ記事