【发布时间】:2020-07-28 17:51:20
【问题描述】:
所以我有一个脚本,我想用getopts 处理选项,但我也想以通常的方式读取程序本身的参数。所以在这个示例脚本中,我想处理选项,然后处理echo 参数,如./script.sh -abc theargument。出现的问题是我不知道它是哪个shell参数。参数不应该与选项相关,因此您也可以像./script.sh theargument 这样调用脚本:
#!/bin/sh
while getopts "abc" opt; do
case $opt in
a) echo "option a" ;;
b) echo "option b" ;;
c) echo "option c" ;;
esac
done
echo # what?
我不能只用shift 参数和$OPTIND 使其成为$1,因为可以给出-abc、-a -b -c、-ab -c 等选项,所以选项的数量不对应到参数的数量。
理想情况下,我想避免 bashisms
【问题讨论】: