LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
12
返回列表 发新帖
楼主: yongjian

再问awk利用外部变量[脚本解决]

[复制链接]
发表于 2006-5-17 21:59:53 | 显示全部楼层
兄弟,你误解我的问题了,我是说用 awk -v 定义的变量,不是引用shell的变量,

还请多指点阿
回复 支持 反对

使用道具 举报

发表于 2006-5-18 08:33:01 | 显示全部楼层
我没误解, 我那个贴说的是两件事.
你试一下,echo |awk -v a="aa bb" '{print a}'
回复 支持 反对

使用道具 举报

发表于 2006-5-18 08:46:22 | 显示全部楼层
Post by home_king
javalee老兄说得不错。但我也不知道awk解析bash变量的过程是怎样。

建议看看awk的相应部分源代码。


关于awk 用bash变量的问题.
我想这里面存在误解,
其实这整个跟awk 没有任何关系.
是bash在运行awk之前把它的变量代进去了.
下面是例子:

  1. ~$ b="aa bb"
  2. ~$  a={print" "$b""}
  3. ~$  echo $a
  4. {print "aa bb"}
  5. ~$  echo |awk "$a"
  6. aa bb
  7. ~$  echo |awk '{print "'"$b"'"}'
  8. aa bb
  9. ~$  a={print" $b"}
  10. ~$  echo $a
  11. {print aa bb}
  12. ~$  echo |awk -v aa="cc" -v bb="dd" "$a"
  13. ccdd
  14. ~$  echo |awk -v aa="cc" -v bb="dd" '{print '"$b"}
  15. ccdd
复制代码
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表