我想测试 Bash 函数的返回值if像这样的声明:
if [[ func arg ]] ; then …
但我收到如下错误消息:conditional binary operator expected.
这样做的正确方法是什么?
是下面这个吗?
if [[ $(func arg) ]] ; then ...
如果它是退出代码而不是结果,您可以使用
if func arg; then ...
如果您无法使该函数返回正确的退出代码(使用return N
),并且您必须使用字符串结果,请使用亚历克斯·吉特曼的回答 https://stackoverflow.com/questions/6241256/what-is-the-proper-way-to-test-a-bash-functions-return-value/6241286#6241286.
$ help if
:
if: if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]… [ else COMMANDS; ] fi
根据条件执行命令。
The if COMMANDS
列表被执行。如果其退出状态为零,则then COMMANDS
列表被执行。否则,每个elif COMMANDS
清单是
依次执行,如果其退出状态为零,则对应的then COMMANDS
list 被执行并且 if 命令完成。否则,
这else COMMANDS
执行列表(如果存在)。的退出状态
整个构造是最后执行的命令的退出状态,或零
如果没有条件测试为真。
退出状态:
返回最后执行的命令的状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)