{channel.title!channel.name} - 楚淮公司周东林

awk调用BASH(系统)变量

编写 bash 的时候经常用到 awk 命令,awk调用系统命令如果直接用$调用会报^ syntax error 等错误。


一、比较好用又推荐的方法使用 ‘’ 单引号将 bash 中定义的变量括起来

例:

var='123'

[root@zhoudl opt]# var=123
[root@zhoudl opt]# echo $var
123
[root@zhoudl opt]# awk 'BEGIN{print "'$var'"}'
123

如果变量中含有空格必须要将变量用 “” 双引号包起来不然会报错。

反例:

[root@zhoudl opt]# var='1 2 3'
[root@zhoudl opt]# awk 'BEGIN{print "'$var'"}'
awk: cmd. line:1: BEGIN{print "1
awk: cmd. line:1:             ^ unterminated string
awk: cmd. line:1: BEGIN{print "1
awk: cmd. line:1:             ^ syntax error

正确的:

[root@zhoudl opt]# awk 'BEGIN{print "'"$var"'"}'
1 2 3

二、用 awk 的 -v 选项把系统变量转换成awk变量

[root@zhoudl opt]# awk -v nvar="$var" 'BEGIN{print nvar}'
1 2 3


浏览.发表于:2018-09-27 09:52:47