2017-01-10 23 views
-4

このコマンドをシェルで実行しようとしていますが、出力が間違っています。Bash "if"文が正常に動作しない

day=$(date -r myfile.c | cut -d ' ' -f 1); if(($day == "Fri")); then echo $day; fi; 

出力はSatです。これはどのように可能ですか? 私はすでに別の方法を試してみました:

if(($day == "Fri")) 
if(("$day" == "Fri")) 
if(("$day" == 'Fri')) 
+1

正しいbash 'if'構文をgoogleで検索するか、' man test'を実行してください。 –

+0

ええ; 'if [$ day =" Fri "] then ... ' – Blacksilver

+0

角型ブラケットでは、構文エラー – Yuri

答えて

4

あなたは文字列の比較を行うために使用している構文が正しくありません。

移植可能な構文はif [ "$day" = Fri ]です。

bash固有の構文はif [[ $day = Fri ]] - [[であり、引用符は必要ありません。

キーワード/コマンド間のスペースが重要であるため、if[はシェルがif[を参照していないために書き込めません。

+0

私はこれにかなり新しいので、ありがとうございます – Yuri

+2

また、(()) 'は算術であり、テキストではありません。 – cdarke

関連する問題