多行命令和状态代码

时间:2011-05-02 15:47:36

标签: bash

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

如何在执行后检查其状态?不是通过if ... $ ?,而是通过disjunction ||。 我的意思是我可以做到以下几点: ls || 4号出口 如果遇到错误,它将以代码4退出,但我怎么能在我的例子中做到这一点?

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

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

谢谢!

1 个答案:

答案 0 :(得分:5)

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

第一个问题的答案是,你把条件放在&lt;&lt;&lt; FOO部分:

我正在使用&amp;&amp;这里是为了看到输出的方便。但是使用此命令集:

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

你得到:

foo
bar
hi
there

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

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