SC2028
Joachim Ansorg edited this page Nov 12, 2021
·
5 revisions
echo won't expand escape sequences. Consider printf.
Problematic code:
echo "Name:\t$value"Correct code:
printf 'Name:\t%s\n' "$value"Rationale:
Backslash escapes like \t and \n are not expanded by echo, and become literal backslash-t, backslash-n.
printf does expand these sequences, and should be used instead.
Other, non-portable methods include echo -e '\t' and echo $'\t'. ShellCheck will warn if this is used in a script with shebang #!/bin/sh.
If you actually wanted a literal backslash-t, use
echo "\\t"Exceptions
None