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.

Reply via email to