Se tudo o que você está procurando é um único teste condicional para um único comando, você não precisa de uma instrução if
- basta usar uma lista .
De acordo com LESS=+/Lists man bash
:
A list is a sequence of one or more pipelines separated by one of the operators ;, &, &&, or ||, and optionally terminated by one of ;, &, or <newline>. ... An AND list has the form command1 && command2 command2 is executed if, and only if, command1 returns an exit status of zero.
Digamos que a pasta que você espera estar lá seja mydir
e você queira criar um link mylink2dir
apenas se a pasta existir. Você poderia usar:
[ -d mydir ] && ln -s mydir mylink2dir
Ou de forma equivalente:
test -d mydir && ln -s mydir mylink2dir