我是shell脚本的新手,我看到了一些我不理解的东西。
请考虑以下代码:
function test {
return 0
}
if test; then
echo "hihi"
fi
如果我执行代码,它将调用" hihi"。如果测试返回1,则不会调用。
我只是想知道为什么?
答案 0 :(得分:3)
在UNIX中,退出代码0用于表示成功,而非零退出代码表示某种错误。你会把它读成:
if operation_that_might_fail_succeeds; then
echo "everything went ok!"
fi
答案 1 :(得分:1)
具有非零返回值表示Unix术语中存在一些问题/错误,因此如果将返回值0替换为非零数字,则会进入else块
function test {
return 1 # or any non-zero value
}
if test; then
echo "hihi"
else
echo 'else block'
fi
输出:
else block