Linux外壳程序中是否使用“ tick”或“ acute accent”字符(不是`)?


11

我们知道,反引号字符用于命令替换

chown `id -u` /mydir

令我感到疑惑的是:´Linux外壳中的任何东西都使用了tick字符?


注意:顺便说一句,命令替换也可以更容易地编写为
chown $(id -u) /mydir


3
我不确定这个名字,但我认为只有在用作变音符号时才´称为“ 重音”(相反,`称为“ 重音”)。单独使用时,由于后者是反引号,因此将前者称为刻度正向勾号很自然(请不要将其称为反向反引号)。我已经修改标题问题以包含您的注释。
dr_

1
很公平。我已删除评论。
斯特凡Chazelas

1
@ dr01可能值得在标题中加上“(not`)”之类的内容以帮助混淆。
曼队长

相似的字符,撇号('ASCII 39,U + 0027)在许多Unix shell(例如Bourne shell /bin/sh)和Linux shell(例如/bin/bash)中都有含义。它可以防止单词分裂和所有扩展。因此ls '$foo [bar]',除非$foo [bar]当前目录中没有命名的文件,否则将返回错误。等于ls "\$foo [bar]"ls \$foo\ \[bar\]

1
Unicode中有许多外观相似的字符,有关不完整列表的信息,请参见cl.cam.ac.uk/~mgk25/ucs/quotes.html,有关更多符号的信息,请参见en.wikipedia.org/wiki/Prime_(symbol)。出于所有这些,只有ASCII字符('"`)在Unix shell中的特殊含义。

Answers:


28

Unix上过去使用的字符集(包括ASCII)没有刻度字符,因此没有使用。据我所知,自该字符可用以来,尚未引入该字符的常用用法。也不会,因为它没有包含在POSIX的可移植字符集中

`显然最初包含在ASCII中(以及^和〜),用作变音符号。当定义了ASCII时,撇号通常由“样式字形”(表示分钟或英尺的“素数”)表示,而不是由直撇号表示,并且也用作变音符号。

历史上,在Unix shell文档中,`被称为重音符号,而不是反引号。缺少前向滴答声不会引起人们的注意,尤其是因为'被用作辅助字符(请参见roff语法)。


5
“大概´并没有被认为足够普遍(尽管它在非美国语言中广泛使用)。” 触摸。
dr_

6
Shell语法不会使用POSIX便携式字符集之外的字符(ASCII的子集),因为它们的编码通常会在语言环境之间变化(并且可能在某些语言(包括C语言环境中找不到))。例如,在GNU系统上,´在fr_FR.iso88591语言环境中为0xB4,在fr_FR.UTF-8中为0xC2 0xB4,在C语言环境中不存在。
斯特凡Chazelas

@StéphaneChazelas即使fr_FR被任何其他语言替换,您所说的内容仍然正确。字符的编码是编码的属性(ISO-8859-1或UTF-8)。
kasperd

2
@kasperd,是的,我并不是要暗示该语言有所作为。的选择fr_FR是任意的,只是我的系统上有这样的语言环境。当然,这将是与同en_GB.UTF-8...
斯特凡Chazelas

12

尽管ASCII委员会将`视为变音符号并将'视为撇号,但Unix的传统是将它们视为左右单引号(现在Unicode中的字符为U + 2018和U + 2019)。从TeX约定中最明显的是,您在标记源中编写了“引用文本”,而在格式化文档中得到了“引用文本”。这也可以在较旧的等宽字体中看到,例如X11R5和X11R6附带的位图字体,其中两个字符都具有镜像字形。

因此,“和”被认为是彼此相反的,而“”并没有丢失。


3
嗯,是的,我还记得LaTeX语法!
dr_

1
@ dr01:当您发现某些旧字体将它们相互镜像时,这突然变得有意义。
约书亚

2
'在ASCII中被ANSI 明确定义为APOSTROPHE,右单引号,ACUTE_ACCENT,这不仅仅是Unix。ASCII中没有其他右单引号。
斯特凡Chazelas

2
@Joshua:更改字体的时间是一个很大的争议/强烈反对(可能在90年代后期或2000年之后不久)。它不仅是xterm字体,还包括所有标准的X11位图字体,包括位图Times / Helvetica / etc。在浏览器和其他应用程序中以比例间距字体使用。
R .. GitHub STOP HELPING ICE

1
没有足够的反冲来阻止它!Unicode倡导者四处奔波告诉大家ASCII撇号是一条垂直线,与实际ASCII标准中的示例字形直接矛盾……现在几乎每种字体都在位置0x27上有那个愚蠢的东西,而不是像样的撇号
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.