如果我执行以下操作,并且网络已关闭,那么将执行零案例,这是不应该的。
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 连接的零行?