シェルスクリプトにおける引数の受け取り方
シェルスクリプトでは、スクリプトに渡された引数を利用することができます。以下に、基本的な引数の受け取り方について説明します。
引数の基本
-
$0
:- スクリプトの名前を表します。
-
$1
,$2
, ...,$N
:- スクリプトに渡されたそれぞれの引数を表します。
$1
は最初の引数、$2
は二番目の引数、...$N
は N 番目の引数です。
- スクリプトに渡されたそれぞれの引数を表します。
-
$#
:- スクリプトに渡された引数の数を表します。
-
$*
:- すべての引数をひとつの文字列として表します。
-
$@
:- すべての引数を個別の文字列として表します。
使用例
次の例は、シェルスクリプトに渡された引数を表示する簡単なスクリプトです。
#!/bin/bash
echo "スクリプト名: $0"
echo "最初の引数: $1"
echo "二番目の引数: $2"
echo "引数の数: $#"
echo "すべての引数(\$* を使用): $*"
echo "すべての引数(\$@ を使用): $@"
実行例
上記のスクリプトを args.sh
という名前で保存し、以下のように実行します。
$ ./args.sh arg1 arg2 arg3
実行結果
スクリプト名: ./args.sh
最初の引数: arg1
二番目の引数: arg2
引数の数: 3
すべての引数($* を使用): arg1 arg2 arg3
すべての引数($@ を使用): arg1 arg2 arg3
ループを使った引数の処理
すべての引数をループで処理する例を示します。
#!/bin/bash
for arg in "$@"
do
echo "引数: $arg"
done
実行例
$ ./args.sh arg1 arg2 arg3
実行結果
引数: arg1
引数: arg2
引数: arg3
引数のシフト
shift
コマンドを使うと、引数を左にシフトし、$1
の値を削除できます。
#!/bin/bash
while [ "$#" -gt 0 ]; do
echo "引数: $1"
shift
done
実行例
$ ./shift_args.sh arg1 arg2 arg3
実行結果
引数: arg1
引数: arg2
引数: arg3
まとめ
シェルスクリプトでは、引数を使ってスクリプトに様々な入力を渡すことができます。これにより、スクリプトの柔軟性と再利用性が向上します。引数をうまく利用することで、より汎用的で強力なスクリプトを作成することができます。