1 SC2258
Rushen Wang edited this page 2024-09-09 20:46:46 +08:00

The trailing comma is part of the value, not a separator. Delete or quote it.

Problematic code:

for f in foo, bar, baz
do
  echo "$f"
done

Correct code:

for f in foo bar baz
do
  echo "$f"
done

or

for f in "foo," "bar," "baz,"
do
  echo "$f"
done

Rationale:

ShellCheck found a for loop where the items appear to be separated by commas. These will be treated as literal commas. If the commas are part of the value, enclose them in quotes, or remove them.

Exceptions:

None

  • Help by adding links to BashFAQ, StackOverflow, man pages, POSIX, etc!