Skip to content

Files

Latest commit

 

History

History
40 lines (25 loc) · 916 Bytes

SC2182.md

File metadata and controls

40 lines (25 loc) · 916 Bytes

Pattern: Use of printf format string with no variables

Issue: -

Description

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

Example of incorrect code:

place="world"
printf hello $place

Example of correct code:

place="world"
printf "hello %s\n" "$place"

Further Reading