function cmakerel {
if expr match "$PWD" '*bld*' >/dev/null ; then
cmake -D....
else
echo "Wrong directory!"
fi
}
Run Code Online (Sandbox Code Playgroud)
cmakerel将调用cmake命令,如果PWD有bld其名称。
但是,我通常会像这样调用这个命令: cmakerel && make check
如何修改上面的代码,使其在失败时返回一个值,从而make check不会调用第二部分?
可能返回某种非零值应该有效。
Dan*_*eck 10
添加
return $?
Run Code Online (Sandbox Code Playgroud)
在cmake使用与 相同的退出代码退出函数的调用下方cmake,并添加
return 1
Run Code Online (Sandbox Code Playgroud)
在echo调用 exit with下方1,它是非零的,因此表示一个错误。
您也可以(如果您组合调用这两个命令)将make调用添加到此函数:
cmake [args] && make -j4
Run Code Online (Sandbox Code Playgroud)
或者,例如允许更细粒度的错误处理:
cmake [args]
local _ret=$?
if [ $_ret -ne 0 ] ; then
echo "cmake returned with exit code $_ret, aborting!" >&2
return $_ret
fi
make -j4
Run Code Online (Sandbox Code Playgroud)
如果您将其作为独立程序调用,即将该函数存储在 shell 脚本中,并调用例如作为
/path/to/cmakerel.sh
Run Code Online (Sandbox Code Playgroud)
那么您可以使用exit而不是return中止整个程序/子shell。
| 归档时间: |
|
| 查看次数: |
21461 次 |
| 最近记录: |