использование оператора and (&&) в сценарии bash оператора if
у меня есть три переменные:
VAR1="file1"
VAR2="file2"
VAR3="file3"
как использовать и (&&
) оператор в операторе if следующим образом:
if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
then ...
fi
когда я пишу этот код дает ошибку. Что такое правильный путь?
1 ответ:
так чтобы сделать ваше выражение работы, изменение
&&
на-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: несколько унарных операторов в операторе if и некоторые ссылки, приведенные там, как в чем разница между тестом, [ и [[ ?.