为什么在bash的意想不到的EOF中会有一个起始反击?"'错误

时间:2017-04-17 22:12:21

标签: bash

假设:

echo '"Number' > temp.sh
./temp.sh

使用此脚本,Bash会输出以下错误消息:

./temp.sh: line 1: unexpected EOF while looking for matching `"'

为什么打印出`"''"'之类的内容?

PS:我试图寻找答案但只得到问题的答案,请求帮助调试此错误。相反,我想知道为什么错误消息打印出一个起始反引号而不是单引号。

1 个答案:

答案 0 :(得分:5)

使用单独的开放和引用引号在历史上被认为是英语中的好形式,并且是正确排版的重要部分。由于节省成本的措施(以及试图保存有限的7位ASCII字符空间),这部分失去了风格,但从未完全消失。

来自Practical Typography

  

卷曲引号是良好排版中使用的引号。

来自Wikipedia

  

“双手”引号在打字机上引入,以减少键盘上的键数,并由计算机键盘和字符集继承。过去设计的一些计算机系统具有带有适当的开启和关闭引号的字符集。但是,自20世纪60年代以来在各种计算机上使用的ASCII字符集只包含一个单引号(U + 0027'撇号)和双引号(U + 0022“引号)。

...以及以下几段,将具体引用(反之)使用反引号作为公开引用:

  

这些相同的系统经常将严重的重音(`,U + 0060)作为开放的引号字形(实际上是一个高反转的9字形,以保留一些可用性作为坟墓)。这给出了以语义正确为代价的适当外观。双引号没有类似的东西,所以很多人使用两个单引号作双引号,如下所示:[...]