シェル

シェルスクリプトのshiftで10個以上の引数を制御する

シェルスクリプト(ここではbash)で引数を受け取るときは、$(ダラー)を使って表現します。

例えば、最初の引数は $1、2 番目の引数は $2 のように、9 個の引数($9)まで利用することができます。

じゃあ、10 個以上は引数を与えれないのかっていうと、実は 10 個以上の引数も受け渡しが可能になります。

10個以上の引数を扱う方法

引数の順番をシフトさせると、2 番目の引数が 1 番目($1)に、3 番目の引数を 2 番目($2)に移動させることができます。
(元には戻せませんので注意が必要です)

まあ、$* や $@ を利用してもいいのですが、この方法の良いところは shift をそのまま記述するだけというところです。

よって、shift を 1 回実行した後は、$9 に 10 番目の引数が入っていることになります。

参考例

下に簡単なスクリプトを書いてみました。
(rilakkuma.sh)

試しに 1 と 2 を引数として渡します。

実行結果は下記の通りです。見事に、2 番目の引数が $1 で表現できています。

first = 1
second = 2
first = 2

どうしてもダイヤが必要な場合

時間を短縮したい。お店屋さんの生産枠を増やしたい。など、ゲームを進めるうえで、どうしても少しだけダイヤを課金したくなる時ってありますよね。

そんな時は、楽天市場で「itunesカード」を購入すると楽天ポイントの還元があってお得です。

iOS(iPhone)の人に限られてしまいますが、初回購入時に 500 円オフのキャンペーンをしていたり、楽天ポイントも最大で 16 倍とものすごくお得です。

[商品価格に関しましては、リンクが作成された時点と現時点で情報が変更されている場合がございます。]

App Store & iTunes ギフトカード(3,000円)
価格:3000円(税込、送料無料) (2020/5/24時点)