コマンドが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
エラーなしで実行できます。改行の後に\