¿Cómo puedo dividir un comando en varias líneas en el shell, cuando el comando es parte de una if
declaración?
Esto funciona:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
Esto no funciona
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
En lugar de ejecutar todo el comando, obtengo:
./script.sh: line 73: --forward-agent: command not found
Más importante aún, ¿qué falta en mi comprensión de Bash que me ayudará a comprender este y otros problemas similares en el futuro?
\
? Son bastante difíciles de ver. Si lo hace, es posible que desee ver si puede hacer que su editor elimine los espacios finales o los haga más visibles.
$ if ! cp -n log/server1.log \ > .; then echo no copy; fi
sin error, con una nueva línea después de\