转自: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扫描算法遇到下一个单引号就会和上一个直接配对,没有贪婪扫描的说法。

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

 
1
'\''

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

 
1
alias history-summary='history | awk '\''{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}'\'' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10'

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

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

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

 
1
echo'abb\'fine'

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

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

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

 
1
'\''

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

 
1
alias history-summary='history | awk '\''{CMD[$2]++;count++;}END { for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}'\'' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10'

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

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

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

 
 
 
 
 

C++

 
1
echo'abb\'fine'

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

最新文章

  1. cell 的复用机制
  2. lodash常用方法1--查询
  3. Spring总结—— IOC 和 Bean 的总结
  4. [iOS翻译]《iOS7 by Tutorials》系列:iOS7的设计精髓(下)
  5. Robberies
  6. javascript强制转换详解
  7. Spring AOP体系学习总结:
  8. pageControl设置不居中显示,居左或居右
  9. Solr4.8.0源码分析(9)之Lucene的索引文件(2)
  10. KEIL C编译器常见警告与错误信息的解决办法
  11. 在Linux环境如何在不解压情况下搜索多个zip包中匹配的字符串内容
  12. 以C语言为例的程序性能优化 --《深入理解计算机系统》第五章读书笔记
  13. TSP-UK49687
  14. 写你的shell,其实很简单[架构篇]
  15. Jquery 组 checkbox全选checkbox
  16. idea上更新文件到github上
  17. JZ2440存储管理器--SDRAM
  18. HttpContext概念讲解
  19. Genymotion-ARM-Translation_v1.1安装报“an error occured while deploying the file”
  20. HTTP上传大文件的节点配置

热门文章

  1. Python连接SqlServer+GUI嵌入式——学生管理系统1.0
  2. 微擎JS资源请求 403
  3. 领扣(LeetCode)合并两个有序数组 个人题解
  4. Elasticsearch系列---简单入门实战
  5. 【dp】B-number
  6. PHP抓取远程图片教程(包含不带后缀图片)
  7. 正则表达式 第六篇:调用CLR函数执行正则查询
  8. 多线程之美3一Java并发工具类
  9. Linux -- 进程间通信几种方式的总结
  10. 对 /langversion 无效;必须是 ISO-1、ISO-2、3、4、5 或 Default