在 Bash 中输入文字字符有哪些不同的方法以及它们是如何完成的?

在 Bash 中输入文字字符有哪些不同的方法以及它们是如何完成的?

在 Bash 中,要输入文字 TAB 字符:

  • 击键tab不起作用,但只会调用 Bash 使用的 readline 完成
  • Ctrl- V-tab作品
  • $(echo $'\t')作品

问题

  • 第三种方法实际上是通过 Bash 将$'\t'制表符解释为 ANSI C 字符串来完成的,这是否正确?
  • 第二种方法是如何实现的呢?也是 Bash 使用的 readline 吗?
  • 一般来说,输入文字字符有哪些方法?

来源于:https://unix.stackexchange.com/a/458074/674

答案1

这个怎么做的

您所说的“文字字符”是作为普通 Unicode 字符实现的。让我们看看它如何适用于TabulationNew line。检查Tabulation十六进制编码:

printf $'\t' | hexdump

输出是

0000000 0009                                   
0000001

输出表示该\t字符是普通的UTF-8字符U+0009。您可以这样打印:

printf '\x00\x09'

或与echo

echo -e '\u0009'

考虑以下New line字符示例:

bob@alice:~$ printf $'\n' | hexdump
0000000 000a                                   
0000001
bob@alice:~$ printf '\x00\x0A empty lines are above and below'; echo $'\n'

 empty lines are above and below

bob@alice:~$ echo -e '\u000a empty line is above'

 empty line is above
bob@alice:~$ 

如何输入 Unicode 字符

Linux中有所谓的ComposeKeyor 。MultiKey密钥可以在xorg.conf.d/10-keyboard.conf文件中定义,只需将行添加到文件中:

Option "xkbOptions" "grp:alt_shift_toggle,terminate:ctrl_alt_bksp,compose:menu"`

ComposeUTF-8 (Unicode) 撰写序列提示可以在文件中找到:

less /usr/share/X11/locale/en_US.UTF-8/Compose

在 GUI 终端中也可以使用CTRL+SHIFT+U键绑定 - 按下它,您将看到u字母。输入并用或键266a完成- 出现八分音符符号。SpaceEnter

附加信息

  1. ANSI-C 引用
  2. Ubuntu-ComposeKey
  3. 维基百科 - 撰写键
  4. 如何在 Ubuntu 18.04 中设置 Compose Key

相关内容