line="foo bar"echo $line | awk '{print }'
如何逃避$1,所以它不会被脚本的第一个参数替换?
解决方法 您的脚本(在awk脚本周围使用单引号)将按预期工作:$cat script-single#!/bin/bashline="foo bar"echo $line | awk '{print }'$./script-single testfoo
但是,以下内容将中断(脚本将输出一个空行):
$cat script-double#!/bin/bashline="foo bar"echo $line | awk "{print }"$./script-double test
注意awk程序周围的双引号.
因为双引号扩展$1变量,awk命令将获得脚本{print test},它打印awk变量test的内容(为空).这是一个脚本,显示:
$cat script-var#!/bin/bashline="foo bar"echo $line | awk -v test=baz "{print }"$./script-var testbaz
相关阅读:Bash Reference Manual – Quoting和Shell Expansions
总结以上是内存溢出为你收集整理的逃脱美元符号bashscript(使用awk)全部内容,希望文章能够帮你解决逃脱美元符号bashscript(使用awk)所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)