On Mon, Dec 07, 2020 at 05:02:35PM -0800, L A Walsh wrote: > If I type in (<TAB> + <ENTER> are keypresses) > > if [[ '<TAB>' == $'\t' ]]; then echo ok; else echo notok; fi <ENTER> > > bash displays: > > if [[ ' ' == $'\t' ]]; then echo ok; else echo notok; fi > ok
Bash doesn't "display" things. Your terminal displays that. > if I now copy the 'if' line and paste it > > if [[ ' ' == $'\t' ]]; then echo ok; else echo notok; fi > notok Some terminals, when fed a tab character, will preserve that knowledge in memory; then, when you copy text from that part of the terminal window using your mouse, the terminal will put a tab byte into the selection/clipboard. Other terminals, when fed a tab character, will just dump out a bunch of spaces, and will not remember that there was originally a tab character as part of their input. Then, if you copy that part of the text, you'll just get a bunch of spaces instead of the original tab character.