【发布时间】:2019-09-04 18:49:09
【问题描述】:
我正在创建一个 bash 脚本,它将来自命令行的用户的两个参数。但我不确定如何从用户那里获取 2 个参数,如果没有传递这两个参数,则会显示错误并从脚本返回。下面是我用来从用户那里获取参数的代码,但目前我的 getopts 只接受一个参数。
optspec="h-:"
while getopts "$optspec" optchar; do
case "${optchar}" in
-)
case "$OPTARG" in
file)
display_usage ;;
file=*)
INPUTFILE=${OPTARG#*=};;
esac;;
h|*) display_usage;;
esac
done
如何添加一个选项以从命令行获取更多参数。如下所示
script.sh --file="abc" --date="dd/mm/yyyy"
【问题讨论】:
-
@chepner 我想做这样的事情 script.sh --file="abc" --date="dd/mm/yyyy"
-
getopts也不做长选项。 -
如果两个参数都需要,不要将它们设为选项(以
-开头),将它们设为位置参数。 -
@chepner 你能建议我们如何从 getopt 做到这一点
-
为什么要使用这种语法?您可以编写零代码并将脚本调用为
file=abc date=dd/mm/yy script.sh。如果要解析参数,请以script.sh file=abc date=dd/mm/yy调用脚本。额外的--没有额外的价值。