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