Bash スクリプトで引数を反復処理する方法 質問する

Bash スクリプトで引数を反復処理する方法 質問する

複雑なコマンドがあり、それをシェル/bash スクリプトにしたいのですが、次のように$1簡単に記述できます。

foo $1 args -o $1.ext

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

そしてもちろん、スペースを含むファイル名も処理したいと考えています。

ベストアンサー1

"$@"すべての引数を表すために使用します。

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

これは各引数を反復処理し、別々の行に出力します。$@ は $* のように動作しますが、引用符で囲むと、引数にスペースがある場合は適切に分割されます。

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

おすすめ記事