シェルスクリプトで引数を使う方法これだけ!

シェルスクリプトを実装する際、引数を使って処理をしたいことがあると思います。
シェルスクリプトの引数の使い方はちょっと特殊なので、解説していこうと思います。

<スポンサードリンク>

シェルスクリプトの引数の指定方法

シェルスクリプトでは以下の特別な変数があり、引数の指定の仕方も以下の特殊な変数の1部になります。

シェルスクリプトの引数の指定は、2行目の$1 ~ $9です。

変数 機能
$0 スクリプト名
$1 ~ $9 引数、1番目の引数を$1、2番目の引数を$2でアクセスする
$# スクリプトに与えた引数の数
$* 全部の引数をまとめて1つとして処理
$@ 全部の引数を個別として処理
$? 直前実行したコマンドの終了値(0は成功、1は失敗)
$$ このシェルスクリプトのプロセスID
$! 最後に実行したバックグラウンドプロセスID

シェルスクリプトの引数を使った実装サンプル

シェルスクリプト

#!/bin/sh

echo "[\$1] 1番目の引数 : $1"
echo "[\$2] 2番目の引数 : $2"
echo "[\$3] 3番目の引数 : $3"
echo "[\$4] 4番目の引数 : $4"
echo "[\$5] 5番目の引数 : $5"
echo "[\$6] 6番目の引数 : $6"
echo "[\$7] 7番目の引数 : $7"
echo "[\$8] 8番目の引数 : $8"
echo "[\$9] 9番目の引数 : $9"

echo "[\$#] 引数の数 : $#"
echo "[\$*]: $*"
echo "[\$@]: $@"

実行結果

#!/bin/sh

echo "[\$1] 1番目の引数 : $1"
echo "[\$2] 2番目の引数 : $2"
echo "[\$3] 3番目の引数 : $3"
echo "[\$4] 4番目の引数 : $4"
echo "[\$5] 5番目の引数 : $5"
echo "[\$6] 6番目の引数 : $6"
echo "[\$7] 7番目の引数 : $7"
echo "[\$8] 8番目の引数 : $8"
echo "[\$9] 9番目の引数 : $9"

echo "[\$#] 引数の数 : $#"
echo "[\$*]: $*"
echo "[\$@]: $@"

シェルスクリプトの引数をfor文で処理する

引数をfor文で処理したい時は以下のようにします。

シェルスクリプト

#!/bin/sh

count=1

# 引数全体をfor文で処理
for arg in "$@"
do
  # 引数の値を出力
  echo "引数${count}:${arg}"

  count=`expr ${count} + 1`
done

出力結果

$ bash test.sh 1 2 3 4 5 6 7 8 9
引数1:1
引数2:2
引数3:3
引数4:4
引数5:5
引数6:6
引数7:7
引数8:8
引数9:9

シェルスクリプトで引数を使いたい場合は、上記のように実装することが出来ます。

スポンサードリンク

コメントを残す

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

CAPTCHA