gongxin12

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

转自:https://blog.jysoftware.com/2015/12/bash-%E6%80%8E%E4%B9%88%E5%81%9A%E5%8D%95%E5%BC%95%E5%8F%B7%E5%B5%8C%E5%A5%97%EF%BC%9F/

单引号是无法嵌套的,因为bash的line扫描算法遇到下一个单引号就会和上一个直接配对,没有贪婪扫描的说法。

既然如此,实际上一个替代方案立即就会呈现出来:

 

 

这个序列首先提供一个闭合单引号,然后是一个命令行转义字符的单引号,最后提供一个开单引号,从而解决了问题。例如:

 

 

查看你在shell中最常使用的命令的频度。

在BASH中,例如十六进制转义符“\x27”来表示单引号也是可以的,这是另一种达到单引号中嵌套单引号的办法。

如果直接使用“\’”转义字符会怎么样呢?我遗憾地告诉你,这种方案是要拼人品的,有可能产生语法错误,也可能顺利通过:

 

 

最安全的是我们提出的第一种方法。

单引号是无法嵌套的,因为bash的line扫描算法遇到下一个单引号就会和上一个直接配对,没有贪婪扫描的说法。

既然如此,实际上一个替代方案立即就会呈现出来:

 

 

这个序列首先提供一个闭合单引号,然后是一个命令行转移字符的单引号,最后提供一个开单引号,从而解决了问题。例如:

 

 

查看你在shell中最常使用的命令的频度。

在BASH中,例如十六进制转义符“\x27”来表示单引号也是可以的,这是另一种达到单引号中嵌套单引号的办法。

如果直接使用“\’”转义字符会怎么样呢?我遗憾地告诉你,这种方案是要拼人品的,有可能产生语法错误,也可能顺利通过:

 

 

最安全的是我们提出的第一种方法。

posted on 2019-08-16 12:00  gongxin12  阅读(2756)  评论(0编辑  收藏  举报