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