■作成するプログラムの仕様
▼処理概要
①引数をつけてShellを実行する。
②実行Shell名を表示する。
③第1引数を表示する。
④第2引数を表示する。
⑤第3引数を表示する。
⑥第10引数を表示する。
⑦すべての引数を表示する。
■使用するコマンド
コマンド | 概要説明 |
---|---|
echo | 文字列/変数を表示する |
$0 | 実行Shell名を出力する |
$1 | 第1引数を出力する |
$2 | 第2引数を出力する |
$3 | 第3引数を出力する |
${10} | 第10引数を出力する |
$* | 引数を全て表示 |
$@ | 引数を全て表示 |
▼実行引数について
実行引数が増えるにつれて$1、$2、$3・・・と増える。
実行引数の10個目以降を表示する場合は数字部分を { } でくくる必要がある
▼ [$*]と[$@]の違い
[$*]と[$@]は、すべての引数を表示するという点に関しては、同じである。
[$*]を使用すると、すべての引数の値を一つの文字列で表示する。
例:引数 aaa bbb ccc の場合
$* → ”aaa bbb ccc”
[$@]を使用すると、引数それぞれを一つの文字列として表示する。
例:引数 aaa bbb ccc の場合
$@ → ”aaa” “bbb” “ccc”
■サンプルコード
#!/bin/bash
# シェル名を出力
echo "実行シェル名:"$0
# 第1引数を表示
echo "第1引数:" $1
# 第2引数を表示
echo "第2引数:" $2
# 第3引数を表示
echo "第3引数:" $3
# 第10引数を表示
echo "第10引数:" ${10}
# 引数を全て表示(すべての値が一つの文字列)
echo "全ての引数(*):" $*
# 引数を全て表示(一つ一つ別の文字列)
echo "全ての引数(@):" $@
■実行結果
▼実行コマンド
./sample.sh aaa bbb
第1引数: aaa
第2引数: bbb
第3引数:
第10引数:
全ての引数(*): aaa bbb
全ての引数(@): aaa bbb
実行時に第3引数以降を指定してないため、第3引数および第10引数は空白となる。
▼実行コマンド
./sample.sh aaa bbb ccc
第1引数: aaa
第2引数: bbb
第3引数: ccc
第10引数:
全ての引数(*): aaa bbb ccc
全ての引数(@): aaa bbb ccc
実行時に第3引数まで指定しているため、第3引数は表示され、第10引数は表示されない。
▼実行コマンド
./sample.sh a b c d e f g h i j
第1引数: a
第2引数: b
第3引数: c
第10引数: j
全ての引数(*): a b c d e f g h i j
全ての引数(@): a b c d e f g h i j
実行時に第10引数まで指定してるため、第10引数が表示される
コメント
[…] 【Shell】実行時の引数を取得・表示する■作成するプログラムの仕様▼処理概要①引数をつけてShellを実行する。②実行Shell名を表示する。③第1引数を表示する。④第2引数を表示する。 […]