時々私は多くのファイルに私のスクリプトを使用したいと思います。
私がこれを使用する理由は次のとおりです。
for etminput in $1
do
#process
done
ただし、これは最初の入力のみを提供します。各ワイルドカードマッチに対してこのプロセスをどのように実行できますか?
ベストアンサー1
Bourneに似たシェルでスクリプトのすべてのパラメータを繰り返すには、次の手順を実行します。
for i do
something with "$i"
done
次のようにすることもできます。
for i in "$@"; do
something with "$i"
done
しかし、より長くて携帯性が低下します(最新のケースには適していますが)。
気づく:
for i; do
something with "$i"
done
BourneもPOSIXでもないので避けてください(多くのシェルで動作しますが)。
完全性を期すためにBourneシェルではない場合:
csh/tcsh
@ i = 1
while ($i <= $#argv)
something with $argv[$i]:q
@ i++
end
以下は使用できません:
foreach i ($argv:q)
something with $i:q
end
これは空のパラメータをスキップするためです。
RC/アカンガ
for (i) something with $i
(rc
通常は殻です。しなければならない図)。
英語
for (i=$*) something with $i
(esはステロイドのrcです)。
魚
for i in $argv
something with $i
end
扱いにくい
Bourneの構文を受け入れますが、次の短い構文もサポートしています。
for i ("$@") something with "$i"