[スニペット] shellで受け渡しの引数をkey、valueで行うようにする

Pocket
LINEで送る
GREE にシェア
LinkedIn にシェア

Shellで便利ツールを作成する時に、汎用性を持たせるために、コマンドラインでの引数を受け付けられるようにしたいが、引数の何番目という風にしてしまうと、ブランクが発生した時にnullは受け渡せないので(文字列で強制的に行えばできなくないのだが・・・)、ツールの柔軟性を大幅に増したいのでkey、value形式で受け取れるスニペットを作ってみた。

仕様

実行したプログラムで基本数値に対して、足し算値と引き算値を受け取って結果を出してみる。

基本値:100
足し値:20
引き値:5

プログラム

実行

無事に上記のような結果が出たら、他の値も試してみよう

マイナスにも対応できてますね。
でも小数点には対応できていません。
小数点は別の方法で対応する必要がありますね。
でも、今回は、引き渡し値のkey,valueなので無視します。

解説と改造ポイント

受け渡し値”$@”をfor文で順番に調べて、対象のkey値の次の値を拾うようにしています。
また、値にマイナスが入った時の区別の為に–basicという風にしています。

–**というkey値を改造することで何にでも対応できるようになります。
1つずつ対応しているので、簡単だと思うので、お好きに変えてください。
また、値は数値だけでなくて、文字列でもいけるので、汎用性は高いはずです。(ファイルパスなども可能)

Leave a Reply

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