Подтвердить что ты не робот

Using и (&&) оператор в выражении if bash script

У меня есть три переменные:

VAR1="file1"
VAR2="file2"
VAR3="file3"

Как использовать и (&&) оператор в выражении if следующим образом:

if [ -f $VAR1 && -f $VAR2 && -f $VAR3 ]
   then ...
fi

Когда я пишу этот код, он дает ошибку. Каков правильный путь?

4b9b3361

Ответ 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 и некоторые ссылки, приведенные там как В чем разница между тестом, [и [[?.