合肥市建设网站,创新网站建设工作室,做网站客户最关心的是什么,wordpress编辑器汉getopts是一个在 Shell 脚本中用于解析命令行选项的内置命令。
它用于处理脚本的参数#xff0c;使得脚本可以接受不同的选项和参数#xff0c;并根据用户提供的输入采取相应的操作。
getopts 命令基于 POSIX 标准#xff0c;并且通常与 while 循环结合使用。它的语法如下…getopts是一个在 Shell 脚本中用于解析命令行选项的内置命令。
它用于处理脚本的参数使得脚本可以接受不同的选项和参数并根据用户提供的输入采取相应的操作。
getopts 命令基于 POSIX 标准并且通常与 while 循环结合使用。它的语法如下
while getopts options opt; docase $opt inoption1)# 处理 option1 的操作;;option2)# 处理 option2 的操作;;\?)# 处理无效选项的操作或错误提示echo Invalid option: -$OPTARG;;esac
done
其中options为该脚本程序接受的参数列表每个参数用一个字母表示getopts会随着while循环挨个遍历参数列表opt为匹配到的参数字符OPTARG为当前匹配到的参数值如果有的话。
比非所有参数都有值可以在配置options参数列表时用冒号:标记改参数是否有值例如
#!/bin/bash
# file_name: my_script.shwhile getopts a:b:cde:fgh opt
docase $opt ina)echo Option -a is set with value $OPTARG;;b)echo Option -b is set with value $OPTARG;;c)echo Option -c is set;;d)echo Option -d is set;;e)echo Option -e is set with value $OPTARG;;f)echo Option -f is set;;g)echo Option -g is set;;h)echo Option -h is set;;\?)echo Invalid option: -$OPTARG;;esac
done
./my_script.sh -a apple -b36 -c -d -e ays -ghf
#Option -a is set with value apple
#Option -b is set with value 36
#Option -c is set
#Option -d is set
#Option -e is set with value ays
#Option -g is set
#Option -h is set
#Option -f is set
总结一下getopts从第一个脚本命令行参数开始假如是以-开头则识别为是传参取-后面的一个字母做为传参名然后到getopts配置的options参数列表中检查该传参是否有值。
如果该传参有配置值取该命令行参数剩余部分为参数值如果剩余部分为空字符串则取下一个命令行参数做为参数值不管下一个命令行参数是否以-开头
如果该传参没有配置值且当前命令行参数还有其他字符则取下一个字符做为传参继续判断
如果该传参没有配置值且当前命令行参数没有其他字符则取下一个命令行参数继续判断
如果遇到一个命令行参数不是以-开头或所有命令行参数遍历结束getopts返回Falsewhile循环结束。