有没有办法根据命令的错误输出执行 if 语句?
例如,我想udisksctl
在安装 USB 驱动器的脚本中使用,然后对驱动器内容执行一些操作。
- 驱动器未安装:它应该安装它然后执行操作。
- 驱动器不存在:它应该抛出错误消息并退出;
- 驱动器已安装,它应该执行操作;
在这种情况下,运行udisksctl
可能会产生三种结果:
在情况 1) 中,它运行成功。
在其他两种情况下,它会返回错误,但是:
- 在案例 2)中,它给了我错误:
Error looking up object for device ...
- 在案例 3) 中,它给了我错误:
Error mounting /dev/sdb1: GDBus.Error:org.freedesktop.UDisks2.Error.AlreadyMounted: Device /dev/sdb1 is already mounted at
是否有一种优雅的方式来制作一个 if 语句,该语句根据这两个错误消息采取不同的操作?
像这样将错误消息传递给 grepudisksctl mount -b /dev/disk/by-label/CRUZER 2> >(grep -i "Error looking up object for device")
似乎对输出没有任何影响。