0

これは bash では正常に動作していますが、tcsh で動作させる必要があります。以下は私が使用するコードです:

if [ -e ~/test/file ]; then echo 'yes'; else echo | mail -s 'not done' abc@gmail.com ; fi

この基本的なコードでは、エラーが表示されますif: Expression Syntax

エラーの意味がわかりませんし、if ステートメントが機能しない理由もわかりません。括弧の前後にスペースがあります。試しif ( test -f ~/test/file )てみましたが、同じエラーが発生しました。

デフォルトでbashを使用しているため、迷子になりましたが、このエラーからは洞察が得られません。同様のケースがいくつか見られますが、ファイルの存在を確認することについては何もありません。

4

2 に答える 2

1

tcsh man ページの「ファイル照会演算子」セクションを参照してください。

あなたが説明しているもののtcsh構文は

if ( -e ~/test/file ) then
    echo 'yes'
else
    echo | mail -s 'not done' abc@gmail.com
endif

tcsh は、コードを 1 行で実行するのが得意ではないことに注意してください。

于 2013-05-29T20:33:31.297 に答える
1

一連のコマンドで test コマンドを使用して、1 行で実行できます。

test -e ~/test/file && echo 'yes' || mail -s 'not done' abc@gmail.com

または、正のケースに関心がない場合は、短い「if」形式を使用できます

if ( ! -e ~/test/file ) mail -s 'not done' abc@gmail.com
于 2013-05-31T22:06:35.607 に答える