我的shell脚本中有一个ssh heredoc,如果heredoc中的其中一个命令出错,我该怎么退出我的shell脚本。
我的shell脚本将是这样的
#!/bin/bash
set -o errexit
loginto_vm() {
ssh host@IP << ENDSSH
ls n1n
cd n1n
ENDSSH
echo 'done'
}
loginto_vm
这里是退出ssh heredoc如果&#34; n1n&#34;不存在并打印echo语句,但我希望它退出脚本
答案 0 :(得分:2)
您可以检查heredoc中任何关键命令的退出状态并退出ssh并显示错误 - 然后检查ssh退出状态以退出脚本
ssh host@IP <<ENDSSH
ls n1n || exit 1
cd n1n || exit 2
ENDSSH
(($?)) && exit 1
echo 'done'
答案 1 :(得分:0)
此处的命令由远程shell执行。您需要在此处的文档中传入.someclass[xml\:lang="da"] {
background: red
}
,以便在那里可见;它与运行<span class="someclass" xml:lang="da"> text</span>
命令的shell完全分开。
答案 2 :(得分:0)
如果在任何shell脚本中出现任何错误,您可以指示shell退出:
$ sudo su <<EOF
set -e
echo before
bad-command
echo after
EOF
输出:
before
sh: line 3: bad-command: command not found
通知after
未打印。