我写的一个庆典和我的脚本 errexit 设置,所以会死,如果任何命令不返回0出口码,即如果任何命令不能成功完成。这是确保我砸脚本是稳健。

我已经装载一些文件系统中复制一些文件,卸载它。我把一个 umount /mnt/temp 在开始这样,它将卸下它之前做任何事情。然而,如果它不是安装后卸载将失败和阻止我的脚本。

这是可以做到 umount --dont-fail-if-not-mounted /mnt/temp?因此,它将返回0如果设备不安?喜欢 rm -f?

有帮助吗?

解决方案

标准招忽视返回代码是包裹的命令,在布尔的表达,评估是成功:

umount .... || /bin/true

其他提示

假设你的 umount 返回1时的设备没有安装,你可以做这样的:

umount … || [ $? -eq 1 ]

然后砸将不承担任何错误,如果 umount 返回0或1(即卸载的成功或设备没有安装),但将停止脚本,如果任何其他代码返回(例如你没有权限到卸载设备)。

我刚刚发现的":"更多使用成功,并希望类似的解决方案,但让脚本知道发生了什么.

umount ...... || { echo "umount failed but not to worry" ; : ; } 

这回真正的消息,虽然卸载失败。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top