阅读 Linux Shell 脚本

阅读 Linux Shell 脚本

怎么读这个?

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)。

相关内容