複雑なコマンドがあり、それをシェル/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