Comment puis-je diviser une commande sur plusieurs lignes dans le shell, lorsque la commande fait partie d'un if
instruction?
Cela marche:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
Cela ne fonctionne pas:
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
Au lieu d'exécuter toute la commande, j'obtiens:
./script.sh: line 73: --forward-agent: command not found
Plus important encore, qu'est-ce qui manque à ma compréhension de Bash qui m'aidera à comprendre ce problème et des problèmes similaires à l'avenir?
\
? Ils sont assez difficiles à voir. Si vous le faites, vous voudrez peut-être voir si vous pouvez faire en sorte que votre éditeur supprime les espaces de fin ou les rende plus visibles.
$ if ! cp -n log/server1.log \ > .; then echo no copy; fi
sans erreur, avec une nouvelle ligne après\