シェルスクリプトを使用してディレクトリの内容を取得しようとしています。
私のスクリプトは:
for entry in `ls $search_dir`; do
echo $entry
done
ここで、$search_dir
相対パスです。ただし、$search_dir
名前に空白を含む多くのファイルが含まれています。その場合、このスクリプトは期待どおりに実行されません。
を使用できることはわかっていますがfor entry in *
、これは現在のディレクトリでのみ機能します。
そのディレクトリに移動し、使用しfor entry in *
てから元に戻すことができることはわかっていますが、私の特定の状況では、それを行うことができません。
私には2つの相対パス$search_dir
とがあり$work_dir
、両方で同時に作業し、それらを読み取り、ファイルの作成/削除などを行う必要があります。
だから私は今何をしますか?
PS:私はbashを使用しています。
for entry in "$search_dir/*"
しないのか説明できますか?なぜ/*
引用符の外に置く必要があるのですか?