bash中的空格“”和“\”之间的区别

时间:2011-08-05 16:37:16

标签: bash unix terminal

bash中的" "\之间是否存在差异?

例如,ls *" "*ls *\ *将为我返回相同的结果。

2 个答案:

答案 0 :(得分:8)

""版本将为任何潜在的变量/运算符解析引号的内部带来更多的开销。反斜杠空间版本将被视为只有文字空间而没有额外的开销。两者之间的cpu时间/内存使用的实际成本将是完全微观的,但是,除非它在一个循环中运行kajillions次。

答案 1 :(得分:0)

反斜杠只会掩盖下一个字符,如果你只想掩盖一个字符,可能会更快打字,但这可能取决于你的键盘布局,以及你是否盲目地键入10个手指。我更喜欢引用,因为它们更容易打字。

互相掩饰和自己是另一个不同之处:

echo \\

将输出反斜杠,但

echo "\"

将输出“,并等待收盘报价。

echo \"

将起作用,并输出报价,但

echo """ 

不会,出于与上述相同的原因。

某些特殊字符(如换行符,换页符,制表符,提示符等)只能用反斜杠生成,但不能用引号生成,包括反斜杠本身。

/bin/echo -e "\tfoo\abar\bbar\ffoo\nbar\rfoo"

有关完整列表,请参阅man echo

这不仅适用于echo,而且您可以在脚本中使用字符串进行许多操作。