bash - 多行命令和状态码

标签 bash

sfdisk -D $val << EOF
,,$type  
EOF

执行后如何查看其状态?不是通过 if...$?,而是通过析取 ||。 我的意思是我可以执行以下操作: ls || 4号导出 如果 ls 遇到错误,它将退出并显示代码 4,但在我的示例中如何执行此操作?

第二个问题是,如何在失败时执行多个命令?这样的事情可以吗?

`ls` || { echo "!!!"; exit 4 }

谢谢!

最佳答案

您实际上在问两个不同的问题...

第一个问题的答案是,将条件放在 << FOO 部分之后:

我在这里使用 && 是为了方便查看输出。但是使用这个命令集:

# cat << EOF && ( echo hi ; echo there )
foo
bar
EOF

你得到:

foo
bar
hi
there

回答你的第二个问题,你应该使用():

# bash -c 'exit 1' || ( echo hi ; echo there )
hi
there

关于bash - 多行命令和状态码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5859234/

相关文章:

bash -//在 bash 中有什么意义?

linux - 为什么当我通过 shell 脚本创建 .txt 文件时,问号出现在文件名的末尾?

bash - 等等,在 shell 脚本中不工作?

bash - 将复杂的命令结果分配给变量

linux - 脚本中的 ejabberdctl 命令给出错误 "Connection attempt from disallowed node"

regex - 使用 sed 替换列字段分隔符

bash - bash 上的嵌套函数

bash - [[ ${variable} ]] 与 bash 中的 [[ -n ${variable} ]] 相同吗?

bash - 寻找库来连接相对/完整网址。

反引号命令中的 bash pipestatus?