在检查的源代码时less
,我注意到包含的联机帮助页 ( less.man
) 使用终端转义码来显示粗体文本:
^[[1mNAME^[[0m
less - opposite of more
^[[1mSYNOPSIS^[[0m
^[[1mless -?^[[0m
^[[1mless --help^[[0m
^[[1mless -V^[[0m
^[[1mless --version^[[0m
^[[1mless [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]^[[0m
Run Code Online (Sandbox Code Playgroud)
用于生成的命令显然是nroff -man
:
$ head Makefile.aut
# Makefile for authoring less.
EMAIL = bug-less@gnu.org
HOMEPAGE = http://www.greenwoodsoftware.com/less
SHELL = /bin/sh
RCS = rcs
NROFF = nroff -man
Run Code Online (Sandbox Code Playgroud)
然而,如果我运行nroff -man less.nro
,我会使用退格键获得(通常的)联机帮助页输出:
N^HNA^HAM^HME^HE
less - opposite of more
S^HSY^HYN^HNO^HOP^HPS^HSI^HIS^HS
l^Hle^Hes^Hss^Hs -^H-?^H?
l^Hle^Hes^Hss^Hs -^H--^H-h^Hhe^Hel^Hlp^Hp
l^Hle^Hes^Hss^Hs -^H-V^HV
l^Hle^Hes^Hss^Hs -^H--^H-v^Hve^Her^Hrs^Hsi^Hio^Hon^Hn
Run Code Online (Sandbox Code Playgroud)
如何生成第一个表格?
在我遇到的许多 Linux 发行版中,将文本粘贴到 shell 时会包含退格字符。为什么不阻止粘贴这些字符——或者这个特性是否提供了一些有用的功能?
换句话说,Linux shell 是否“知道”它是粘贴的字符串——还是手动输入的?
这种行为如何处理?