如果我执行了以下操作,并且网络已关闭,则会执行零个案例,而不应该这样做。今天通过SSH检查通过命令输出的零线
case "$(ssh -n $host zfs list -t snapshot -o name -H | grep "tank/fs" | wc -l | awk '{print $1}')" in
0) # do something
;;
1) # do something else
;;
*) # fail
esac
在我检查,我可以ssh来$host
脚本较早,但我发现这个问题,去哪儿网我的支票后立即失败。
如果我检查SSH命令的返回值,那么我将始终从awk
获取返回值,因为它将在最后执行。
问题
如何确保我其实算零线即zfs
输出,而不是零线从失败的SSH连接?
不适用于我,它仍然通过'情况0'。 **编辑**:你添加了代码,'$? == 0'逻辑应该工作。 – Jite
@Jite看到编辑 – devnull
我认为这是一个丑陋的解决方案,但。当* ssh失败时,'grep' /'wc' /'awk'命令将在本地执行,而不是在远程*执行,这就是为什么它不能按预期工作。我的解决方案应该更强大。 – Jite