SC2028 – ShellCheck Wiki

See this page on GitHub

Sitemap


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


ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.