-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2231
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
for file in $dir/*.txt
do
echo "Found $file"
done
for file in "$dir"/*.txt
do
echo "Found $file"
done
When iterating over globs containing expansions, you can still quote all expansions in the path to better handle whitespace and special characters.
Just make sure glob characters are outside quotes. "$dir/*.txt"
will not glob expand, but "$dir"/*.txt
or "$dir"/*."$ext"
will.
Exceptions similar to SC2086 apply. If the variable is expected to contain globs, such as if dir="tmp/**"
in the example, you can ignore this message.
- Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!