1. ホーム
  2. bash

[解決済み] Bashスクリプトで引数を反復処理する方法

2022-02-09 12:40:55

質問

複雑なコマンドをシェル/bashスクリプトにしたいのですが、どうすればいいですか? 私はそれを次のような形で書くことができます。 $1 を簡単に作成することができます。

foo $1 args -o $1.ext

スクリプトに複数の入力名を渡せるようにしたいのですが。正しい方法は何ですか?

もちろん、スペースが含まれるファイル名も処理したいです。

どのように解決するのですか?

使用方法 "$@" ですべての引数を表します。

for var in "$@"
do
    echo "$var"
done

これは各引数を繰り返し、別行にプリントアウトします。 ただし、引用符で囲むと、引数にスペースがある場合は適切に分割されます。

sh test.sh 1 2 '3 4'
1
2
3 4