Table of Contents
スクリプト実行時にユーザーの入力を受け取る
今まで作ったシェルスクリプトは、決まった処理しかできないものでした。
今回は、実行するときに数値や文字列を与えてあげることで、それに応じた処理ができるシェルスクリプトの書き方を紹介します。
この実行する際に与える数値や文字列のことをパラメータと言います。
実行時にパラメータを与えることで、例えば、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
実行シェルスクリプト: test
1つ目のパラメータ値: 12
2つ目のパラメータ値: abc
すべてのパラメータ値: 12 abc
渡したパラメータが表示されているのがわかります。
練習問題
1つ目のパラメータに名前(□□)、2つ目のパラメータに年齢(◯◯)を書くと、「私は◯◯歳の□□です。」と表示されるシェルスクリプトを作ってください。
答え(クリックで開く)
#!/bin/bash echo 私は${2}歳の${1}です。