shell脚本中 getopts
时间: 2024-01-11 18:22:46 浏览: 163
getopts是Bash shell的内置命令,用于解析命令选项和参数。它可以帮助我们处理命令行参数,并根据需要执行相应的操作。
以下是一个使用getopts的shell脚本示例:
```shell
#!bin/bash
# 定义函数,用于显示脚本的用法
func() {
echo "Usage:"
echo "test.sh [-j S_DIR] [-m D_DIR]"
echo "Description:"
echo "S_DIR,源路径。"
echo "D_DIR,目标路径。"
exit -1
}
# 设置默认值
upload="false"
# 使用getopts解析命令行选项和参数
while getopts 'h:j:m:u' OPT; do
case $OPT in
j) S_DIR="$OPTARG";;
m) D_DIR="$OPTARG";;
u) upload="true";;
h) func;;
?) func;;
esac
done
# 输出解析结果
echo $S_DIR
echo $D_DIR
echo $upload
```
在上述示例中,我们定义了一个函数`func()`,用于显示脚本的用法。然后,我们设置了一个默认值`upload="false"`。接下来,我们使用`getopts`命令解析命令行选项和参数。`getopts`命令的第一个参数是一个包含所有选项的字符串,每个选项后面可以跟一个冒号表示该选项需要一个参数。`getopts`命令的第二个参数是一个变量名,用于存储解析到的选项。在`case`语句中,我们根据解析到的选项执行相应的操作。最后,我们输出解析结果。
阅读全文