解释
以下是脚本及其内容的输出
>> cat /ocpkg/test-1.sh
#!/bin/bash
foo() {
if [[ 1 -eq 1 ]]; then
return 0
else
return 1
fi
}
foo
echo "foo function call output = $?"
if [[ $(foo) ]] ; then
echo "return has value 0 so doing something"
else
echo "return has value 1 so doing another thing"
fi
>> /ocpkg/test-2.sh
foo function call output = 0
return has value 1 so doing another thing
>> cat /ocpkg/test.sh
#!/bin/bash
foo() {
if [[ 1 -eq 0 ]]; then
return 0
else
return 1
fi
}
foo
echo "foo function call output = $?"
if [[ $(foo) ]] ; then
echo "return has value 0 so doing something"
else
echo "return has value 1 so doing another thing"
fi
>> /ocpkg/test-2.sh
foo function call output = 1
return has value 1 so doing another thing
如上面的输出所示,无论foo
函数的返回值如何,脚本的最终输出都是return has value 1 so doing another thing
。
问题
当函数使用return
命令返回值时,如何使用if子句中函数的返回值?
答案 0 :(得分:1)
只做
if foo; then
这样您就可以使用foo
的退出代码。使用$()
,您正在使用foo
{s}来编辑sysout的内容。