我是 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