Shell 我想通过pass_flag的echo命令中的test_var

Shell 我想通过pass_flag的echo命令中的test_var,shell,unix,awk,Shell,Unix,Awk,我正在解析一个XML文件users.XML,我想传递$3,它将密码值保存到trial.sh。 XML文件如下所示: <Users> <user> <name>Veera</name> <password>!#!veera@nbs</password> </user> </Users> 维拉 !#!veera@nbs awk' 开始{FS=“[]” { 如果($2==“密码”) { 如果($3=

我正在解析一个XML文件
users.XML
,我想传递
$3
,它将密码值保存到
trial.sh
。 XML文件如下所示:

<Users>
<user>
<name>Veera</name>
<password>!#!veera@nbs</password>
</user>
</Users>

维拉
!#!veera@nbs

awk'
开始{FS=“[]”
{
如果($2==“密码”)
{
如果($3==”!#!veera@nbs")
{
encrypted=“”`sh test.sh$3`“
sub(3美元,加密)
}
}
打印
}
'users.xml>users2.xml
XML文件包含元素
password
$3
保存了新密码,我想将其传递给
试用版.sh
,该密码加密
$3
!#!veera@nbs
)并返回结果,该结果将存储在加密的
awk
变量中,并替换现有值。

$awk-F''NF>1{打印$2}文件
$ awk -F'</?password>' 'NF>1{print $2}' file
!#!veera@nbs
!#!veera@nbs
因此:

test.sh“$(awk-F''NF>1{print$2}”文件)

以上假设您的文件始终如示例所示格式良好,并且没有(例如)与标记不同的行上的密码值。

Hi-Ed感谢您的帮助。.我已经编辑了它。.嘿,Ed,我希望您现在可以帮助我如果有人在密码中使用
,您将遇到问题(或
|
-在字符类中,不需要显式的“或”操作)。找出哪些网站不允许使用尖括号总是很有趣的。我还注意到,标题中提到了
echo
test\u var
,这两个词都没有出现在问题的主体中。这让人困惑。谢谢Jonathan,你能推荐一些xml解析的技巧吗?我已经尝试过很多Jonathan,但大多数都不适合my要求..你能推荐一些链接吗
$ awk -F'</?password>' 'NF>1{print $2}' file
!#!veera@nbs
test.sh "$(awk -F'</?password>' 'NF>1{print $2}' file)"