以下代码给出错误"foo:return:too many arguments"
f123() { echo $1; return 1; }
f124() { echo $1; return 1; }
foo() {
return f123 "hello" && f124 "world"
}
foo
Run Code Online (Sandbox Code Playgroud)
要求是:
我怎么在bash中这样做?
你根本不需要return这里; 函数的退出状态是执行的最后一个命令的退出状态.return只需返回显式退出状态.
foo() {
f123 "hello" && f124 "world"
}
Run Code Online (Sandbox Code Playgroud)
如果f123失败(具有非零退出状态),f124则不执行并且退出状态f123用作退出状态foo.如果f123成功,则f124 确实执行,和它的退出状态(零或不)被用作的退出状态foo.
(如果你真的想f124在f123失败时执行,那么使用||而不是&&.)