关于Linux Shell脚本有以下内容:
verifyIfFileExists(){
...
returns 0 # if the file exists
...
returns 1 # if the does not exist
}
...
something(){
verifyIfFileExists
resultVerification=$?
if [[ $resultVerification -eq 0 ]]; then
...
else
...
fi
...
}
上面显示的代码按预期工作。我想知道是否可能以及如何在语句中调用方法和求值if
- 它以避免resultVerification=$?
声明 - 类似:
something(){
verifyIfFileExists
if [[ $(verifyIfFileExists) -eq 0 ]]; then
...
else
...
fi
答案1
如果命令
成功,如果command
以 0 状态退出;就你而言,
if verifyIfFileExists; then
...
else
...
fi
[
和[[
本身是命令,根据作为参数给出的表达式的计算结果返回 0 或 1。所以
if [[ ...
是泛型的一个实例
如果命令如上所示。
如果您想稍后使用退出状态,则将退出状态存储在不同的变量中可能会很有用;例如
... run a command
result=$?
printf "Command foo exited with result %s.\n" "$result"
if [[ "$result" -eq 0 ]]; then
...
fi
如果你不需要那个,那么
command
if [[ "$?" -eq 0 ]]; then
可以重写为
if command; then
我发现它更容易阅读。如果您的函数具有相应的名称,则尤其如此,例如
if fileExists; then
也可以看看shellcheck的SC2181其中列出了更多陷阱。
答案2
只需使用:
if verifyIfFileExists ; then
# checking for return code 0
或者
if ! verifyIfFileExists ; then
# checking for return code 1