-
Notifications
You must be signed in to change notification settings - Fork 1.9k
SC2211
Joachim Ansorg edited this page Nov 12, 2021
·
2 revisions
This is a glob used as a command name. Was it supposed to be in ${..}, array, or is it missing quoting?
for f in $(*.png); do echo "$f"; done # Trying to loop over a glob
array=$(*.txt) # Trying to assign an array
echo "$(array[1])" # Trying to expand an arrayfor f in *.png; do echo "$f"; done
array=(*.txt)
echo "${array[1]}"You are using a glob as a command name. This is usually a mistake caused by one of the following:
- Trying to use
`*foo*`or$(*foo*)to expand a glob. - Using
var=$(*.txt)instead ofvar=(*.txt)to assign an array. - Using
$(..)instead of${..}when expanding an array element. - Running a program with a name or directory that contains glob characters without escaping them.
Look up and double check the syntax of what you're trying to do.
None. If you want to specify a command name via glob, e.g. to not hard code version in ./myprogram-*/foo, expand to array or parameters first to allow handling the cases of 0 or 2+ matches.