Bash 多行命令和状态代码

Bash 多行命令和状态代码,bash,Bash,谢谢大家! 你实际上在问两个不同的问题 第一个问题的答案是,您将条件放在第二个问题的后面:()将在子shell中运行其内容,这可能不是您想要的(例如,退出、设置变量等将无法按预期工作)。相反,在命令之后使用带有分号的{}:bash-c'exit 1'| |{echo hi;echo there;}hi。不是这样工作的:sfdisk-D$dev您需要一个“;”在3之后和}之前 sfdisk -D $val << EOF ,,$type EOF `ls` || { echo "!!

谢谢大家!

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


第一个问题的答案是,您将条件放在第二个问题的后面:
()
将在子shell中运行其内容,这可能不是您想要的(例如,退出、设置变量等将无法按预期工作)。相反,在命令之后使用带有分号的
{}
bash-c'exit 1'| |{echo hi;echo there;}
hi。不是这样工作的:
sfdisk-D$dev您需要一个“;”在3之后和}之前
sfdisk -D $val << EOF
,,$type  
EOF
`ls` || { echo "!!!"; exit 4 }
# cat << EOF && ( echo hi ; echo there )
foo
bar
EOF
foo
bar
hi
there
# bash -c 'exit 1' || ( echo hi ; echo there )
hi
there