【发布时间】:2014-10-09 09:09:15
【问题描述】:
以下代码是我的 shell 脚本的一部分。 但我无法理解为什么退出状态(sshStatus)总是为 0? 我想要 ssh 输出以及退出状态。 请帮助我找到解决方案。
local output="$(ssh -q -o ConnectTimeout=10 \
-o BatchMode=yes \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
$user@$host "$command" 2>&1)"
local sshStatus=$?
命令可以是:
command="[ ! -d /home/upendra/dfs ]"
command="cat /home/upendra/a.txt"
command="sh /home/upendra/dfs/bin/start-datanode.sh"
每当我在 shell 提示符下直接调用如下命令时:
ssh -q -o ConnectTimeout=10 \
-o BatchMode=yes \
-o StrictHostKeyChecking=no \
-o UserKnownHostsFile=/dev/null \
upendra@172.20.20.2 "[ ! -d /home/upendra/dfs ]" 2>&1
然后exit status(echo $?)来了 1.这是正确的,因为这个目录在主机上不存在。
【问题讨论】:
-
谢谢大家。我在这个页面上得到了解决方案:unix.stackexchange.com/questions/66581/… 这是由于“本地输出”。
标签: shell