如何在 Bash 脚本中获取参数266


Bash 脚本的参数是存储在 $1、$2、$3 等特殊变量中的命令行参数。这些变量允许你从脚本外部访问用户提供的输入。

要获取脚本的参数,你需要使用 shift 命令。每次调用 shift,都会将第一个参数移动到下一个参数位置,依此类推。shift 命令的语法如下:```bash
shift [n]
```

其中,n 是要移动的参数数量(默认为 1)。

以下示例演示了如何使用 shift 命令获取脚本的参数:```bash
#!/bin/bash
echo "第 1 个参数:$1"
shift
echo "第 2 个参数:$1"
shift
echo "第 3 个参数:$1"
```

运行该脚本将产生以下输出:```bash
第 1 个参数:arg1
第 2 个参数:arg2
第 3 个参数:arg3
```

在上面的示例中,shift 命令被调用三次,每次将第一个参数移动到下一个参数位置。因此,$1 最初包含第一个参数,但在第一次调用 shift 后包含第二个参数,在第二次调用后包含第三个参数。

你还可以使用 getopts 命令来解析命令行选项。getopts 命令允许你指定一个选项字符串,其中包含允许的选项,以及一个变量,该变量将存储每个选项的值。getopts 命令的语法如下:```bash
getopts optstring var
```

其中,optstring 是一个包含允许的选项的字符串,var 是一个将存储选项值的变量。例如,以下脚本使用 getopts 命令解析 -f 和 -o 选项:```bash
#!/bin/bash
while getopts ":fo:" opt; do
case $opt in
f)
echo "-f 选项被设置"
;;
o)
echo "-o 选项的值为 $OPTARG"
;;
:)
echo "选项 -$OPTARG 需要一个参数"
;;
?)
echo "未知选项: -$OPTARG"
;;
esac
done
```

运行该脚本并使用 -f 和 -o 选项将产生以下输出:```bash
-f 选项被设置
-o 选项的值为 value
```

在上面的示例中,while 循环将继续运行,直到没有更多选项可解析。getopts 命令将设置 OPTARG 变量以包含选项的值,或者如果没有提供值,则设置为空字符串。case 语句用于处理不同的选项。

其他有用的 Bash 参数

除了 $1、$2 等特殊变量之外,Bash 脚本还可以访问以下其他有用的参数:* $0:脚本本身的名称
* $#:脚本参数的数量
* $*:所有脚本参数的列表
* $@:所有脚本参数的列表,每个参数都用双引号括起来
* $?:上一个命令的退出状态

2024-12-08


上一篇:Bash 脚本中的 if-else 语句:条件执行的神奇工具

下一篇:Bash 脚本中无缝运行 Python