入力$ 1が繰り返し処理するファイルパターンである汎用bashスクリプトを作成しています。今、私はbashシェルスクリプト - cmd行argで指定された特定のパターンのファイルを一覧表示します。
for entry in ./$1; do
echo "$entry"
done
を持っているが、私はこれを実行すると、パターンPRMの多くのファイルがありますが、私は*
$ ./stuff.sh PRM*
./PRM.EDTOUT.ZIP
を取得します。このパターンをコマンドライン引数で指定し、同じパターンのすべてのファイルを正しくリストする方法はありますか?
あなたは './stuff.sh PRM *'を実行すると、bashはグロブを拡張し、 './stuff.sh PRM.EDTOUT.ZIPのPRMを実行します.other.matches.zip'。あなたのスクリプトはパターンを見ることはありません。すべての引数( '$ @"; do .. 'または単に' for entry; do 'のエントリ)をループする必要があります –
' ./stuff.sh "PRM * '。スクリプトを1行に変更することもできます: 'ls $ 1'でも入力を引用する必要がありますので、スクリプトがそれを取得する前に展開されません。 – JNevill