Posted By: Anonymous
I’m trying to get the contents of a directory using shell script.
My script is:
for entry in `ls $search_dir`; do echo $entry done
$search_dir is a relative path. However,
$search_dir contains many files with whitespaces in their names. In that case, this script does not run as expected.
I know I could use
for entry in *, but that would only work for my current directory.
I know I can change to that directory, use
for entry in * then change back, but my particular situation prevents me from doing that.
I have two relative paths
$work_dir, and I have to work on both simultaneously, reading them creating/deleting files in them etc.
So what do I do now?
PS: I use bash.
for entry in "$search_dir"/* do echo "$entry" done