我在我的 bash 代码中使用了以下行
disks=$(lsblk -nd --output name,rota,fstype | grep $disk_name)
当我运行脚本时,程序会在此行退出,没有任何解释。但是,在终端中
使用该代码可以正常工作。lsblk -nd --output name,rota,fstype | grep $disk_name
为什么会发生这种情况?
答案1
我删除了 中的行set -e
。显然,使用var=$(program | grep string)
该命令时grep
会出错并退出。现在上面的行可以正常工作。或者,我们可以这样做var=$(program | grep string || true)
。