比較演算子のようなものですが、正確にはどのような演算子であるのでしょうか。次のコード(https://github.com/lvv/git-prompt/blob/master/git-prompt.sh#L154から取得)?シェルスクリプトで "=〜"演算子は何をしますか?
if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then
elipses_marker="…"
else
elipses_marker="..."
fi
私は現在、MinGWの下で働くためにgit-prompt
を作るしようとしている、とMinGWの付属のシェルは、この演算子をサポートしていないようです:私はちょうど置き換えることができ、この特定のケースでは
conditional binary operator expected
syntax error near `=~'
` if [[ $LC_CTYPE =~ "UTF" && $TERM != "linux" ]]; then'
をelipses_marker="…"
のブロック全体(私の端末がユニコードをサポートしていることを知っている)が、正確には=~
は何ですか? RHSオペランドは正規表現です
バッククォートでgrepを実行する必要はありません。 'もしエコー$ LC_TYPE | grep -Fq UTF && test "$ TERM"!= linux; ' –
読みやすいコードを奨励しようとしています...私は、それが式のように見えるように、最初の "式"を取り囲む1つの 'test'とバックティックでより直感的です。 (そして、grep -qも同様にエラーになります):-)しかし、私は同意します。私は 'test'を頻繁に使う傾向がありますが、' 'if:' 'パイプよりも読みやすいと思います。 – MattBianco
「grep -qはエラーでも真」とはどういう意味ですか?興味深いもの: –