🍉

シェルスクリプトにおける引数の受け取り方

2024/06/23に公開

シェルスクリプトにおける引数の受け取り方

シェルスクリプトでは、スクリプトに渡された引数を利用することができます。以下に、基本的な引数の受け取り方について説明します。

引数の基本

  1. $0:

    • スクリプトの名前を表します。
  2. $1, $2, ..., $N:

    • スクリプトに渡されたそれぞれの引数を表します。$1 は最初の引数、$2 は二番目の引数、... $N は N 番目の引数です。
  3. $#:

    • スクリプトに渡された引数の数を表します。
  4. $*:

    • すべての引数をひとつの文字列として表します。
  5. $@:

    • すべての引数を個別の文字列として表します。

使用例

次の例は、シェルスクリプトに渡された引数を表示する簡単なスクリプトです。

#!/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

まとめ

シェルスクリプトでは、引数を使ってスクリプトに様々な入力を渡すことができます。これにより、スクリプトの柔軟性と再利用性が向上します。引数をうまく利用することで、より汎用的で強力なスクリプトを作成することができます。

Discussion