2014-03-24 26 views
0

我有一个包含类似有效的XML文件:如何分配XML节点值bash脚本变量

<ConfigSettings> 
    <pairs> 
     <p> 
      <Name>InstallDirectory</Name> 
      <Val>/Library/Application Support/Home</Val> 
     </p> 

...等对后续...

在命令行中输入以下工作返回正确<Val>字符串:

echo 'cat /ConfigureSDK/ConfigSettings/pairs/p[Name="InstallDirectory"]/Val/text()' | xmllint --shell initsdk.xml | grep -v "^/ >" 

然而,当我尝试在脚本中的结果分配给一个变量,例如,

ABC='cat /ConfigureSDK/ConfigSettings/pairs/p[Name="InstallDirectory"]/Val/text()' | xmllint --shell initsdk.xml | grep -v "^/ >" 

然后尝试

echo $ABC 

没有打印。

我敢肯定我错过了一些简单的东西,但我尝试了许多变化无济于事。

感谢您的任何帮助。

回答

0

使用export$(...)捕获命令的输出。

$ export A=$(echo Hello) 
$ echo $A 
Hello 
+0

忽略-1我不知道我在做什么重新投票,我正在尝试投票赞成。无论如何,这当然是正确的答案。 – user3444281

+0

@ user3444281我会稍微编辑答案,然后您应该可以将您的投票改为投票。 – chepner