Я пытаюсь получить содержание каталога с помощью сценария оболочки.
Мой сценарий:
for entry in `ls $search_dir`; do
echo $entry
done
где $search_dir
относительный путь. Однако $search_dir
содержит много файлов с пробелами на их имена. В этом случае этот сценарий не работает как ожидалось.
Я знаю, что мог использовать for entry in *
, но это только работало бы на мой текущий каталог.
Я знаю, что могу измениться на тот каталог, использовать for entry in *
затем возвратитесь, но моя конкретная ситуация препятствует тому, чтобы я делал это.
У меня есть два относительных пути $search_dir
и $work_dir
, и я должен работать над обоими одновременно, читая их создающий/удаляющий файлы в них и т.д.
Таким образом, что я делаю теперь?
PS: Я использую удар.
for entry in "$search_dir"/*
do
echo "$entry"
done
for entry in "$search_dir"/* "$work_dir"/*
do
if [ -f "$entry" ];then
echo "$entry"
fi
done