実行時パラメータ

2016年8月1日(更新: 2016年8月1日)

スクリプト実行時にユーザーの入力を受け取る

今まで作ったシェルスクリプトは、決まった処理しかできないものでした。

今回は、実行するときに数値や文字列を与えてあげることで、それに応じた処理ができるシェルスクリプトの書き方を紹介します。

この実行する際に与える数値や文字列のことをパラメータと言います。

実行時にパラメータを与えることで、例えば、2つの数値パラメータの足し算を行なうシェルスクリプトを作ることができます。

実行するシェルスクリプトファイル名の後に渡したいパラメータを書きます。半角スペースで区切ると複数のパラメータを渡すことができます

  シェルスクリプト名 パラメータ1 パラメータ2 ...
  

パラメータを使う

渡したパラメータをシェルスクリプト内で参照するには、特殊な変数を使います。よく使うものを表にまとめます。

変数 意味
${#} 渡したパラメータの個数
${@} 渡した全てのパラメータ
${*} ${@}と同じ
${0} 実行しているシェルスクリプトのファイル名
${1} 1つ目に渡したパラメータ
${2} 2つ目に渡したパラメータ
3つめ以降も同様

実際に以下のシェルスクリプトで動作を確認してみましょう。ファイル名を test5 とします。

test5

      #!/bin/bash
      echo 渡したパラメータの数: ${#} 個
      echo 実行シェルスクリプト: ${0}
      echo 1つ目のパラメータ値: ${1}
      echo 2つ目のパラメータ値: ${2}
      echo すべてのパラメータ値: ${@}
  

このシェルスクリプト、ファイル名の後にパラメータを書いて実行してみます。数値の12文字列abcの2つのパラメータを与えてみます。

      test5 12 abc
  

実行結果

渡したパラメータの数: 2 個
実行シェルスクリプト: test
1つ目のパラメータ値: 12
2つ目のパラメータ値: abc
すべてのパラメータ値: 12 abc

渡したパラメータが表示されているのがわかります。

練習問題

1つ目のパラメータに名前(□□)、2つ目のパラメータに年齢(◯◯)を書くと、「私は◯◯歳の□□です。」と表示されるシェルスクリプトを作ってください。

答え(クリックで開く)
      #!/bin/bash
      echo 私は${2}歳の${1}です。
    

コメントを残す

メールアドレスが公開されることはありません。