![awk:失控的正则表达式](https://linux22.com/image/1122185/awk%EF%BC%9A%E5%A4%B1%E6%8E%A7%E7%9A%84%E6%AD%A3%E5%88%99%E8%A1%A8%E8%BE%BE%E5%BC%8F.png)
我可以在 ubuntu 上运行命令:
free | grep Mem | awk '{print $3/$2 * 100.0}'
并得到结果:
20.1092
但是当我尝试将其放在别名中时:
alias memTotal="free | grep Mem | awk '{print $3/$2 * 100.0}'"
它不起作用:
$ memTotal
awk: line 1: runaway regular expression / * 100.0} ...
答案1
尝试
alias memTotal='free | grep Mem | awk '\''{print $3/$2 * 100.0}'\'
分解一下引文,这就是
'free | grep Mem | awk '
接下来是转义的单引号\'
,然后是引用的 awk 表达式'{print $3/$2 * 100.0}'
,最后是转义的文字结束引号\'