【问题标题】:Difference between whitespaces " " and '\ ' in bashbash中空格“”和“\”之间的区别
【发布时间】:2011-08-05 16:37:16
【问题描述】:

" "\ 在 bash 中有什么区别吗?

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

【问题讨论】:

    标签: bash unix terminal


    【解决方案1】:

    "" 版本将产生更多的开销来解析任何潜在变量/运算符的引号内部。反斜杠空格版本将被视为仅没有额外开销的文字空格。然而,两者之间的 cpu 时间/内存使用的实际成本将是非常微小的,除非它在一个正在运行数千次的循环中。

    【讨论】:

      【解决方案2】:

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

      掩饰对方和自己是另一个区别:

      echo \\
      

      会输出一个反斜杠,但是

      echo "\"
      

      将输出一个 ",并等待结束引号。

      echo \"
      

      会起作用,并输出一个报价,但是

      echo """ 
      

      不会,原因同上。

      一些特殊字符,如换行、换页、制表符、警告等,只能用反斜杠产生,但不能用引号产生,包括反斜杠本身。

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

      完整列表请参见man echo

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-09-03
        • 2011-12-13
        • 2022-06-28
        • 2018-08-26
        • 2015-02-12
        • 1970-01-01
        相关资源
        最近更新 更多