JavaScriptには、次の機能があります。
"world".startsWith("w") true
これをシェルでテストするにはどうすればよいですか?私は次のコードを持っています:
if [ world = w ] then echo true else echo false fi
しかし、同等性をテストしているため失敗します。ビルトインを使用したいのですが、このページのユーティリティはすべて使用できます:
http://pubs.opengroup.org/onlinepubs/9699919799/idx/utilities.html
回答
シェルがbashの場合:二重括弧内で、==演算子の右側は次のようになります。完全に引用されていない場合のパターン:
if [[ world == w* ]]; then echo true else echo false fi
またはもっと簡潔に:[[ world == w* ]] && echo true || echo false
[*]
bashを特に対象としない場合:パターンマッチングにはcaseステートメントを使用します
case "world" in w*) echo true ;; *) echo false ;; esac
[*]が、iv id =に注意する必要がありますどちらか divの場合、C
が実行されるため “3d2c8c8c97″>
フォーム> Aが失敗するまたは Bが失敗する。 if A; then B; else C; fi
フォームは、Aが失敗した場合にのみCを実行します。
回答
set world
次に:
if [ "${1%%w*}" ] then echo false else echo true fi
ソース文字列から
または:
if [ "$1" = "${1#w}" ] then echo false else echo true fi
- ソース文字列から
w
を削除します - ソース文字列と比較します
- 等しい場合、ソース文字列は2番目の文字列で始まりません