シェル スクリプトを使用してディレクトリの内容を取得しようとしています。
私のスクリプトは次のとおりです:
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を使用します。
ベストアンサー1
search_dir=/the/path/to/base/dir
for entry in "$search_dir"/*
do
echo "$entry"
done