以下のよう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
されないようにします。-jvalue3
-pvalue2
-e2