【发布时间】:2013-12-23 09:32:54
【问题描述】:
我正在尝试使用 awk 解析输入 xml 文件(如下所示)以获取要连接的用户、密码和实例。我试图在 shell 上导出这些值,以便我可以在我的脚本中使用这些值。 print 显示正确的命令,但不知何故系统没有导出它。 我在 linux KSH 上。
输入文件
> cat aa.xml
<Parameters>
<Parameter Name="USER" Value="DB9"/>
<Parameter Name="PASSWORD" Value="DB9"/>
<Parameter Name="INSTANCE" Value="P1"/>
</Parameters>
代码:
> awk -F '\"' '/<Parameter Name/,//{ cmd="export " $(NF-3) "=" $(NF-1); system(cmd); print cmd}' aa.xml
export USER=DB9
export PASSWORD=DB9
export INSTANCE=P1
> echo $PASSWORD
【问题讨论】:
-
你不能因为一个进程(
awk的实例或更糟的是它运行以执行system命令的 shell 实例)不能影响另一个进程的环境(比如您调用awk的 shell)。这是在不同地方大量复制的。