getopts でシェルスクリプトの引数を処理 ― 2012年10月17日 13時30分38秒
使い方はほとんど雛型定型。
#!/bin/sh
while getopts a:b:c: flag
do
case $flag in
a)
echo $flag "'$OPTARG'"
;;
b)
echo $flag "'$OPTARG'"
;;
c)
echo $flag "'$OPTARG'"
;;
?)
echo $flag "'$OPTARG'"
;;
esac
done
shift `expr $OPTIND - 1`
最後の shift で処理した分の引数を飛ばす。
セミコロンを指定したときには、必ず引数を与えなければいけない。そうしないとずれてしまう。もし、何も渡さないのであれば、二つのシングルクォートか、ダブルクォートを用いる。
sun $ sh getopts.sh -a AA -b -c CC
a 'AA'
b '-c'
sun $ sh getopts.sh -a AA -b '' -c CC
a 'AA'
b ''
c 'CC'
最近のコメント