0
:行5:Y:コマンドbourneシェルで括弧で囲まれたif文と括弧で囲まれていないif文の違いは何ですか?例えば
if [ $tmp = 'y' ]
一方原因ないエラーを発見していない
if $input = 'y'
が
./test.shを引き起こします?
条件を評価できないifステートメントの目的は何ですか?
:行5:Y:コマンドbourneシェルで括弧で囲まれたif文と括弧で囲まれていないif文の違いは何ですか?例えば
if [ $tmp = 'y' ]
一方原因ないエラーを発見していない
if $input = 'y'
が
./test.shを引き起こします?
条件を評価できないifステートメントの目的は何ですか?
if
何も評価しません。これは単に述語プログラムを実行し、その戻りコードに対して作用します。 [
は実際にはいくつかの条件を実行し、適切なリターンコードを返すプログラムです。あなたがelse
ブランチを必要としない場合
[
は、もしなしonelinersで使用することができます:
$ [ 1 -eq 2 ] && echo "foo"
# -> no output
+1 '['も組み込み可能。 – cnicutar
@cnicutar:それは正しいです。現代のシェルは '' [[''これは完全に組み込みであり、より多くの機能を持っています。 – progo
[[do do? – Hawken