Shellで引数をオプションみたいにかっこ良く受け取る

利用頻度の高いShellは引数もかっこよく受け取れるようにしたい

while getopts d:s:r: OPT
do
case $OPT in
"d" ) dry="$OPTARG" ;;
"s" ) source="$OPTARG" ;;
"r" ) remote="$OPTARG" ;;
* ) echo "Usage: $CMDNAME [-d bool] [-s SOURECE_PATH] [-r REMOTE_PATH]" 1>&2
exit 1 ;;
esac
done
echo $dry
echo $source
echo $remote

こうして受け取れるっぽい。予め渡されると思われる引数は1行目でコロン区切りで宣言し、whileで回すのでその引数の値が来たら受け取れるようにししておくだけ。実行する時はこうなる。

$ hoge.sh -d hoge -s hoge2 -r hoge3

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA