shell双引号和单引号有什么好记法?


43

我没有做足够的脚本来记住,如果不查找,双引号或单引号会导致替换Unix变量。

我绝对知道发生了什么事。我的问题是,有没有人能使正确的报价规则牢牢记住我的记忆技巧


2
使用rc作为你的shell,那么你只有一个类型的引号("是一个普通字符rc,唯一的行情是单引号和反斜线仅用于续行(内部没有单引号))。与bash等类似Korn的外壳程序相比,它还具有更精简,更简洁,更好,更直观的语法和设计。
斯特凡Chazelas

1
学习Perl。然后,您只需要记住外壳的行为类似即可。
n0rd

Answers:


75

引号是具有单个标准的简单引号:每个字符都是文字。引号有一个双重标准:有些字符是文字​​,除非另加反斜杠,否则其他字符仍会被解释。

引号可以单独工作:单引号内的反斜杠并不特殊。
引号与反斜杠配对:双引号内的反斜杠使下一个字符非特殊字符。


7
这很诗意。有了一位优秀的编辑(从文学意义上来说),我们可以从中制作出儿童读物。“如果您教蛇脚本”
格伦·杰克曼(Glenn jackman)17-10-25

7
我一直试图将单引号变成简单的引号,用二十分钟的时间将单一标准变成苏斯博士的风格诗,但失败了。
Ti Strga '17

6
单引号是单次使用的,而lit'rally重复/双引号是更冗长的,这是参数的壮举
DopeGhoti


5

“双重,双重劳动和麻烦;
美元燃烧,反引号泡沫。”

相反,单身无害。


4

双引号(")是引号-您需要两个,所以它们成对出现,尽管有数字,变量也会在它们之间直接插入。

单引号(')是引号-它们是单引号,并且变量与其不匹配。


2

双引号将有趣的
扩展参数一对一地加倍。


1

双引号(")并不完全代表您所说的话,例如,一个说的工具"quality" equipment可能恰恰相反。

单引号(')是强引号,它们之间的确切含义是单引号。


1

目的
是单数形式。

对待字面上的字符,
无论它们如何混合。

(这只是您必须知道
单引号内的一个小规则?不行!)



一些双引号,其中有些字符可能会麻烦 。Bash Escaping 对
美元,反跳和反斜杠
进行了特殊处理
,但会破灭该泡沫。


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.