オプションを使用して変数を操作するスクリプトを作成しようとしていますが、オプションが指定されていない場合はショートカットがあります。したがって、例えば、私はadd
、show
、set
、及びdelete
を持っているが、私はそれらのいずれかを指定しない場合は、入力を行うためにどの動作を決定するために解釈される:bash:case文では、他の場合に移動します
script key
はscript show key
のショートカットでありますscript key=value
は、私はオプションのため
case
文を書かれてい
script set key=value
のショートカットですが、キャッチオールでは、「ケースXに行く」と言うことが可能である?:
case $1 in
add)
#blah;;
show)
#blah;;
set)
#blah;;
delete)
#blah;;
*)
if [[ $1 == *=* ]]; then
#go to case "set"
elif [[ $1 ]]; then
##go to case "show"
else
echo "FAILURE!!!"
exit 1
fi
esac
EDIT
は私が思い付いた:ほとんど動作しますが、今
case $1 in
add)
#blah;;
delete)
#blah;;
set|*=*)
#blah;;
show|*)
#blah;;
esac
(何の最後の引数がない場合、すなわち私はちょうどscript
を実行する)それはscript show
を実行しようとします。
申し訳ありませんが、私は –
:-)あなたupateが '' *空の文字列に一致する表示されません。 '?*'はできません。 – chepner
caseを 'show |?*)に変更すると、標準の' *) 'catchallを使って単一の' case'ステートメントとして保持できますか?すなわち[this](http://pastebin.com/jKXDzu1s) – ewok