如果我執行了以下操作,並且網絡已關閉,則會執行零個案例,而不應該這樣做。今天通過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