\[..\]
to prevent
line wrapping issues.PS1='\e[36m\$ \e(B\e[m'
PS1='\[\e[36m\]\$ \[\e(B\e[m\]'
Bash is unable to determine exactly which parts of your prompt are
text and which are terminal codes. You have to help it by wrapping
invisible control codes in \[..\]
(and ensuring that
visible characters are not wrapped in \[..\]
).
Note: ShellCheck offers this as a helpful hint and not a robust check. Don't rely on ShellCheck to verify that your prompt is correct.
None.
ShellCheck is a static analysis tool for shell scripts. This page is part of its documentation.