Come posso dividere un comando su più righe nella shell, quando il comando fa parte di if
un'istruzione?
Questo funziona:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
Questo non funziona:
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
Invece dell'intero comando in esecuzione, ottengo:
./script.sh: line 73: --forward-agent: command not found
Ancora più importante, cosa manca alla mia comprensione di Bash che mi aiuterà a capire questo e problemi simili in futuro?
\
? Sono piuttosto difficili da vedere. Se lo fai, potresti voler vedere se puoi rendere il tuo editor rimuovere gli spazi finali o renderli più visibili.
$ if ! cp -n log/server1.log \ > .; then echo no copy; fi
senza errori, con una nuova riga dopo\