place="world" printf hello $place
place="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
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.