怎么读这个?
if [ $# -lt 1 ]; then
print_package_file_error_and_exit "No package-file specified."
fi
readonly package_file="$1"
答案1
第一的我们有一个这种形式的“if 语句”:
if COMMAND_1; then
COMMAND_2
fi
它告诉 Shell 如果COMMAND_1
执行成功(返回 0),则执行COMMAND_2
.
COMMAND_1
在此示例中,[ $# -lt 1 ]
这是test
使用括号编写的命令,等于:test $# -lt 1
test $# -lt 1
$#
如果(传递给此脚本的参数数量)小于 ( ) 1,则返回 0 -lt
,导致执行COMMAND_2
在本例中为print_package_file_error_and_exit "No package-file specified."
。
print_package_file_error_and_exit
显然是一个应该安装在您的系统上的应用程序,但它更可能是在脚本或源文件(例如您的bashrc
)中其他位置定义的 shell 函数。根据其名称,人们可以猜测它将打印一条传递给它的消息(在本例中为"No package-file specified."
:),然后退出脚本。
第二我们定义了一个名为package_file
只读的变量(这意味着设置其值后就无法更改它)并设置为传递给脚本的第一个参数的值($1
)。