私は bash に非常に慣れていないので、これがばかげた質問である場合は申し訳ありません。
ファイルを受け取り、それが html で終わるかどうかをテストするスクリプトを作成しようとしています。これが私のコードです:
echo tester.html | grep -E '[^ ]*[.html]'
それでも、私が与えるすべての入力をエコーします。どうすれば修正できますか?
echo tester.html | grep -q '\.html$' && echo "MATCH" || echo >&2 "NO MATCH"
またはバッシュで
x=tester.html
[[ $x == *html ]] && echo "MATCH" || echo >&2 "NO MATCH"
&&
&||
ブール構文は のショートカットです。http://mywiki.wooledge.org/BashGuide/TestsAndConditionals をif condition; then something; else something_else; fi
参照してください。
注
-正規表現[]
での使用は、文字クラス(文字のセット) を意味します
スプートニックの助けを借りて解決しました。
ここにあります:
echo tester.html | grep -E *html
そしてこれはうまくいきます、
皆さんありがとう。