コマンドを実行し、abc という名前を付けて、現在のフォルダー内の各ファイル名をパラメーターとして追加したいと思います。これを C Shell (または他のスクリプト言語) で実行するにはどうすればよいですか?
答え1
csh
または を使用するとtcsh
、現在のディレクトリ内のすべてのファイルとディレクトリが反復処理されます。$i
名前の一部にスペースが含まれている場合に備えて、変数の置換を引用符で囲んでいます。
foreach i (*)
abc "$i"
end
ディレクトリではなくファイルのみを取得したい場合は、-f
テストを使用します。ここでは、C シェルの短縮形式のif
ステートメントを使用しました。
foreach i (*)
if (-f "$i") abc "$i"
end
答え2
見上げるxargsあなたのシェルが私のものと同じであれば、次のシェルはうまく動作するはずです:
find . -type f -maxdepth 1 | xargs abc
ファイル名のスペースが気になる場合は、以下の Daniel Andersson のコメントを参照してください。