Как разделить команду на несколько строк в оболочке, если команда является частью if
оператора?
Это работает:
if ! fab --fabfile=.deploy/fabfile.py --forward-agent --disable-known-hosts deploy:$target; then rc=1
fi
Это не работает:
# does not work:
if ! fab --fabfile=.deploy/fabfile.py \
--forward-agent \
--disable-known-hosts deploy:$target; then
rc=1
fi
Вместо выполнения всей команды я получаю:
./script.sh: line 73: --forward-agent: command not found
Что еще более важно, чего не хватает в моем понимании Bash, которое поможет мне понять эту и подобные проблемы в будущем?
\
? Их довольно сложно увидеть. Если вы это сделаете, вы можете посмотреть, можете ли вы сделать так, чтобы ваш редактор убрал завершающие пробелы или сделал их более заметными.
$ if ! cp -n log/server1.log \ > .; then echo no copy; fi
без ошибок, с новой строкой после\