【Shell】実行時の引数を取得・表示する

■作成するプログラムの仕様

▼処理概要
①引数をつけて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引数が表示される

タイトルとURLをコピーしました