-
Notifications
You must be signed in to change notification settings - Fork 1.8k
SC2043
koalaman edited this page Aug 9, 2014
·
7 revisions
for var in value
do
echo "$var"
done
Correct code depends on what you want to do.
To iterate over files in a directory, instead of for var in /my/dir
use:
for var in /my/dir/* ; do echo "$var"; done
To iterate over lines in a file or command output, use a while read loop instead:
mycommand | while IFS= read -r line; do echo "$line"; done
To iterate over words written to a command or function's stdout, instead of for var in myfunction
, use
for var in $(myfunction); do echo "$var"; done
To iterate over words in a variable, instead of for var in myvariable
, use
for var in $myvariable; do echo "$var"; done
ShellCheck has detected that your for loop iterates over a single, constant value. This is most likely a bug in your code, caused by you not expanding the value in the way you want.
None.