ksh 和函数调用的条件列表,如 fun1 && fun2
ksh and a conditional list of function calls like fun1 && fun2
我完全被这个困住了
#!/bin/ksh
function one {
echo one
return 0
}
function two {
echo two
return 0
}
one && two
它打印
one
two
为什么?我希望永远不会调用两个,因为一个 returns 0 ($? -eq 0
!)
我做错了什么?
我希望这是一个平庸的错误。
关于:
I hope it is a banal mistake.
有时,您的希望会成真:-)
零是成功return代码。如果要指示失败,则需要 return 一个非零值。
对于 ksh
的 man
页面(这类似于 bash
,可能还有其他 shell),我们看到:
cmd1 && cmd2
executes cmd2
only if the exit status of cmd1
is zero;
您实际上可以通过 运行 true ; echo $?
看到这一点 - 您应该得到一个零值。
我完全被这个困住了
#!/bin/ksh
function one {
echo one
return 0
}
function two {
echo two
return 0
}
one && two
它打印
one
two
为什么?我希望永远不会调用两个,因为一个 returns 0 ($? -eq 0
!)
我做错了什么?
我希望这是一个平庸的错误。
关于:
I hope it is a banal mistake.
有时,您的希望会成真:-)
零是成功return代码。如果要指示失败,则需要 return 一个非零值。
对于 ksh
的 man
页面(这类似于 bash
,可能还有其他 shell),我们看到:
cmd1 && cmd2
executescmd2
only if the exit status ofcmd1
is zero;
您实际上可以通过 运行 true ; echo $?
看到这一点 - 您应该得到一个零值。