41
我有三個變量:使用和(&&)運算符在if語句bash腳本
VAR1="file1"
VAR2="file2"
VAR3="file3"
如何使用和(&&
)運算符在if語句是這樣的:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
當我寫這段代碼會給出錯誤。什麼是正確的方式?
我有三個變量:使用和(&&)運算符在if語句bash腳本
VAR1="file1"
VAR2="file2"
VAR3="file3"
如何使用和(&&
)運算符在if語句是這樣的:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
當我寫這段代碼會給出錯誤。什麼是正確的方式?
因此,要使您的表達工作,更改&&
爲-a
將做的伎倆。
這是正確的這樣的:
if [ -f $VAR1 ] && [ -f $VAR2 ] && [ -f $VAR3 ]
then ....
或類似
if [[ -f $VAR1 && -f $VAR2 && -f $VAR3 ]]
then ....
甚至
if [ -f $VAR1 -a -f $VAR2 -a -f $VAR3 ]
then ....
你可以找到給有想在這個問題bash : Multiple Unary operators in if statement進一步的細節和一些參考What is the difference between test, [ and [[ ?。
非常感謝!我會很快接受答案! ;) – 2013-05-06 09:57:19
請注意,[POSIX](http://pubs.opengroup.org/onlinepubs/000095399/utilities/test.html#tag_04_140_16)建議使用'&&'和'||' -a'和'-o',所以如果你正在編寫可移植的代碼,那麼首先使用符號,否則就跳過第三步,特別是因爲如果你需要對錶達式進行分組,它會變得難以理解。 – 2013-05-06 12:22:41