逃脱美元符号bashscript(使用awk)
发布时间:2020-05-23 15:38:18 所属栏目:Linux 来源:互联网
导读:我想在我的bashscript中使用awk,这条线显然不起作用: line=foo barecho $line | awk {print $1} 如何逃避$1,所以它不会被脚本的第一个参数替换? 您的脚本(在awk脚本周围使用单引号)将按预期工作: $cat script-single#!/bin/bashline=foo barecho $line | a
|
我想在我的bashscript中使用awk,这条线显然不起作用: line="foo bar"
echo $line | awk '{print $1}'
如何逃避$1,所以它不会被脚本的第一个参数替换? 解决方法您的脚本(在awk脚本周围使用单引号)将按预期工作:$cat script-single
#!/bin/bash
line="foo bar"
echo $line | awk '{print $1}'
$./script-single test
foo
但是,以下内容将中断(脚本将输出一个空行): $cat script-double
#!/bin/bash
line="foo bar"
echo $line | awk "{print $1}"
$./script-double test
注意awk程序周围的双引号. 因为双引号扩展$1变量,awk命令将获得脚本{print test},它打印awk变量test的内容(为空).这是一个脚本,显示: $cat script-var
#!/bin/bash
line="foo bar"
echo $line | awk -v test=baz "{print $1}"
$./script-var test
baz
相关阅读:Bash Reference Manual – Quoting和Shell Expansions (编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
