前言
在linux写shell脚本的时候,经常会使用awk处理文本以及进行运算。既然是脚本就会使用到变量,但是awk处理文本里面是无法直接使用shell变量,需要awk通过-v参数进行变量传递的。
参数传递变量
TIMEOUT=60
awk -v timeout="$TIMEOUT" 'BEGIN{FS="|"} {if ($7>timeout) print $2 }'
注意:这里timetout是不能加$,只是声明timeout变量。
也可以有其他方法
var="shell"
awk 'BEGIN{print "'$var'"}'
这种写法其实际是双括号变为单括号的常量,传递给了awk,这里就会遇到空格的问题,会导致awk出现异常,因此就需要多加一个双引号进行处理
var="bash shell"
awk 'BEGIN{print "'"$var"'"}'
总结
根据我的习惯是使用参数传递变量的方式,这样子不会因为引号出现混乱。
特别声明:以上内容(如有图片或视频亦包括在内)为自媒体平台“网易号”用户上传并发布,本平台仅提供信息存储服务。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.