Ho uno script di shell testShell.sh che usa getopts come sotto:
#!/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=$@"
Quando provo eseguirlo come segue:
$ testShell.sh -jvalue1 -evalue4 -Djvalue3 -pvalue2
L'output che ottengo sta seguendo:
j=value3
e=2
remaining=
Ma mi piacerebbe l'output come:
j=value1
e=value4
remaining=-Djvalue3 -pvalue2
È possibile fare in modo che getopts guarda solo al primo post dei personaggi - simbolo? in modo che non interpreti -Djvalue3 come -jvalue3 e -pvalue2 come -e2.