Если все, что вам нужно for - это единичный условный тест для одной команды, вам не нужен оператор if
- просто используйте список .
Согласно LESS = + / Списки man bash
:
Список - это последовательность из одного или нескольких конвейеров, разделенных одним из операторов ;, &, &&, или ||, и необязательно завершается одним из;, & или
. ... Список AND имеет форму {{1 }} command1 && command2 command2 выполняется тогда и только тогда, когда command1 возвращает нулевой статус выхода .
Допустим, папка, в которой вы находитесь. ожидайте, что там есть mydir
, и вы хотите создать ссылку mylink2dir
, только если каталог существует. Вы можете использовать:
[ -d mydir ] && ln -s mydir mylink2dir
Или, что эквивалентно:
test -d mydir && ln -s mydir mylink2dir