Bash转义/扩展订单

时间:2015-11-24 10:21:02

标签: bash

我对Bash相当新,而且我在解释输入时遇到的问题时遇到了麻烦。具体而言,当相对于其他扩展步骤发生逃逸时。

根据我的阅读,bash执行以下操作(按顺序):

  • 支撑扩张
  • 波浪扩张
  • 参数和变量扩展
  • 命令替换
  • 算术扩展
  • 分词
  • 文件名扩展

但是这个列表在转换所有转义序列时并不包含,例如' \\'进入他们的意义,例如' \&#39 ;.也就是说,如果我想打印一个反斜杠字符。要运行的命令是

echo \\

不是

echo \

因此反斜杠字符语义所需的语法是两个反斜杠。必须在内部将其转换为单个斜杠表示。

似乎在命令替换之前的某个时候,我发现了一个小的测试程序。

所以,我的问题是:这个步骤何时发生? (或完整的bash解释循环列表将是完美的)

而且,翻译中还有其他细微之处可能会让我感到困惑吗? (与我想知道完整列表有关)

1 个答案:

答案 0 :(得分:1)

从手册页的扩展部分,就在重定向部分之前。

  

引用删除

     

在前面的扩展之后,所有未加引号的字符\,'和"这不是上述扩展之一造成的          被删除。

引用删除是您列出的七次扩展后的最后一个过程。