https://onitroad.com 更多教程
使用 if 循环检查命令行参数
以下脚本捕获特殊变量中的命令行参数:$#、$1、$2、$3 等。
$# 变量捕获命令行参数的数量。
以下示例使用命令行参数进行比较。
# cat arg.sh #!/bin/bash if [ -gt ] then echo "num1 is larger" else echo "num2 is larger" fi
我们可以运行上述脚本,如下所示。
$ ./a 23 45 num2 is larger
根据命令行提供的参数运行脚本的能力使脚本的执行变得通用。
这样,脚本的操作会根据给脚本的参数而有所不同。
shell 会自动为命令行上提供给脚本的每个参数分配称为位置参数的特殊变量名称。
位置参数名称及含义如下表所示。
位置参数名称 | 在以下情况下返回真 (0): |
---|---|
$0 | 脚本名称 |
$1 | 脚本的第一个参数 |
$2 | 脚本的第二个参数 |
$n | 脚本的第 n 个参数 |
$# | 脚本的参数数量 |
$@ | 脚本的所有参数的列表 |
$* | 脚本的所有参数的列表 |
${#N} | 位置参数 N 的值的长度(仅限 Korn shell) |
$@ 和 $* 具有相同的含义。
如果它们没有用双引号 " " 括起来,这是真的。
注 – Bourne shell 存储传递给脚本的所有参数,但只能引用位置参数 $1 到 $9.
要获得超出第九个参数的值,请使用本质上具有破坏性的 shift 语句。
日期:2020-09-17 00:14:56 来源:oir作者:oir