変数に指定された部分文字列で始まる文字列の値があるかどうかを確認する必要があります。
Pythonでは、次のようになります。
foo = 'abcdef'
if foo.startswith('abc'):
print 'Success'
Kshかどうかをチェックする最も明示的な方法は何ですか$foo
は部分文字列bar
で始まりますか?
とてもシンプルですが少し奇妙に見えます:
if [[ "$foo" == abc* ]]; then ...
Kshはパターンを現在のディレクトリのファイルで展開すると想定しますが、代わりにパターンマッチングを行います。ただし、[[
が必要です。シングル[
は機能しません。 foo
に空白がない場合、引用符は厳密には必要ありません。
また:
foo='abcdef'
pattern='abc*'
case "$foo" in
$pattern) echo startswith ;;
*) echo otherwise ;;
esac
正規表現マッチングを行うこともできます:
if [[ $foo =~ ^abc ]]
より複雑なパターンについては、パターンを直接テストに置く代わりに、変数を使用することをお勧めします。
bar='^begin (abc|def|ghi)[^ ]* end$'
if [[ $foo =~ $bar ]]