不确定这行脚本代码在做什么

不确定这行脚本代码在做什么

我是 Bash 脚本的新手,正在尝试学习我公司使用的脚本之一。我偶然发现了这一行:

[ ! -f $PKGDIR/$COMMON_OPS_SCRIPT ] && exit $MISSING_COMMONOPS_SCRIPT

下一行是:

. $PKGDIR/$COMMON_OPS_SCRIPT

第一行让我感到困惑,因为它看起来应该是 if 语句的一部分,但实际上不是。第二行是第一行括号中的内容,前面有一个句号。有人能详细解释一下这里发生了什么吗?

另外,我一直在尝试在这里学习 bash 脚本:

https://ryanstutorials.net/bash-scripting-tutorial/

有人有更好的教程可以供我查看吗?

答案1

您不需要if因为&&可以使用等效的。

[ ] : conditional test
! not
-f FILE : does FILE exist ?
&& : do the following only if the statement before is true (returns 0)
exit : exit the script
. FILE : include FILE

因此,脚本会检查文件是否不存在,如果不存在则退出脚本。否则,它将 source/include 该文件。


这 3 个是等效的:

if [ something ]; then something_else; fi

[ something] && something_else

test something && something_else

答案2

这是检查是否存在文件,然后在下一行中$PKGDIR/$COMMON_OPS_SCRIPT获取它,否则退出并返回. $PKGDIR/$COMMON_OPS_SCRIPT$MISSING_COMMONOPS_SCRIPT

相关内容