我寫了一個bash腳本,並且設置了errexit
,這樣如果任何命令沒有返回0退出代碼,即任何命令沒有成功完成,腳本將會死亡。這是爲了確保我的bash腳本是健壯的。Bash腳本 - 卸載設備,但是如果沒有安裝,請不要失敗?
我必須裝載一些文件系統,複製一些文件,然後卸載它。我在開始時會放入一個umount /mnt/temp
,以便在做任何事情之前將其卸載。但是如果它沒有安裝,那麼umount會失敗並停止我的腳本。
是否可以做umount --dont-fail-if-not-mounted /mnt/temp
?如果設備沒有安裝,它會返回0。像rm -f
?
並將輸出重定向到/ dev/null:umount ...>/dev/null 2>&1 ||/bin/true – knittl 2009-09-04 10:22:20
那麼,這是一個情境。很容易想象腳本想要繼續,但在日誌流中留下任何錯誤消息。 – 2009-09-04 10:44:17
通過使用僞命令':'(shell內置)而不是/ bin/true(它創建一個新進程),可以使其更快一些。也就是說,使用「'umount .... ||:'」 – 2009-09-05 08:34:19