這對bash工作正常,但我需要讓它在tcsh中工作。以下是我使用的代碼:如果聲明不適用於tcsh,但在bash上正常工作
if [ -e ~/test/file ]; then echo 'yes'; else echo | mail -s 'not done' [email protected] ; fi
這個基本代碼給了我一個錯誤,說if: Expression Syntax
。
我不知道錯誤是什麼意思,不知道爲什麼if語句不工作。括號前/後有空格。我試過if (test -f ~/test/file)
並得到了同樣的錯誤。
我失去了默認情況下,我使用bash,這個錯誤沒有見識。我看到一些類似的情況,但沒有檢查文件的存在。
請參閱:http://www.csem.duke.edu/Cluster/csh_basics.htm#if –
我明白了,但沒有辦法將它全部保留在一行中。我希望這是作爲一個單行執行的。 – yatici
@yatici:在tcsh中執行單行'if'的最好方法是'sh -c'if [...];然後 ... ;其他...; fi'',或者如果你需要Bash特有的功能,可以用'bash -c'替換'sh -c'。 –