我有一个shell脚本testShell.sh
,使用getopts
如下:
#!/bin/bash
while getopts ":j:e:" option; do
case "$option" in
j) MYHOSTNAME=$OPTARG ;;
e) SCRIPT_PATH=$OPTARG ;;
*) ;;
esac
done
echo "j=$MYHOSTNAME"
echo "e=$SCRIPT_PATH"
shift $((OPTIND - 1))
echo "remaining=$@"
当我测试运行它时,如下所示:
$ testShell.sh -jvalue1 -evalue4 -Djvalue3 -pvalue2
我得到的输出如下:
j=value3
e=2
remaining=
但我希望输出为:
j=value1
e=value4
remaining=-Djvalue3 -pvalue2
是否可以确保 getopts
只查看第一个字符后 -
符号?这样它就不会解释-Djvalue3
为 as-jvalue3
和-pvalue2
as -e2
。