-
Couldn't load subscription status.
- Fork 1.9k
SC2182
smichel17 edited this page Dec 30, 2020
·
5 revisions
place="world"
printf hello $placeplace="world"
printf "hello %s\n" "$place"ShellCheck has noticed that you're using a printf with multiple arguments, but where the first argument has no %s or equivalent variable placeholders.
echo accepts zero or more strings to write, e.g. echo hello world.
printf instead accepts one pattern/template with zero or more %s-style placeholders, and one argument for each placeholder.
Rewrite your command using the right semantics, otherwise all arguments after the first one will be ignored:
$ printf hello world\\n
hello
$ printf "hello world\n"
hello world
$ printf "hello %s\n" "world"
hello world
If you wanted a no-op, use : instead.
: ${place=world}