2009年7月1日水曜日

シェルのスクリプトに--dry-runのオプションを追加

ロングオプションをシェルに追加するときのメモ

--dry-runのオプションだけつけたかったのだが、getoptに' -o ""'がないとちゃんと動作しなかった。


#!/bin/sh

args=`getopt -o "" -l dry-run -- $@`
DRYRUN=

eval set -- "$args"

until test $1 = "--"
do
case $1 in
--dry-run)
DRYRUN="--dry-run"
;;
esac
shift
done

if test "$DRYRUN" ;then
echo "starting XXXXX(y/N):"
else
echo "dry-run XXXXX(y/N):"
fi

read a
if [ "x$a" = xy -o "x$a" = xY ] ;then
:
else
exit
fi

...(実際の動作)