无法从变量加载远程.xml文件


0

试图从另一台服务器读取.xml文件到一个变量中

test=$(ssh root@server "cat /dir/file.xml")

但是这样做时echo $test,它将以单线格式打印.xml文件。

然后尝试xmllint对该文件执行

xmllint $test

并在每个标签上收到以下错误。

警告:无法加载外部实体“ ...”

注意:执行相同的步骤时,但是在本地.xml文件(不带ssh)上,它正在工作并获得预期的结果。

有什么办法解决这个问题?还是xmllint远程使用工具?

Answers:


2

请注意,您的$test变量包含xml文件的内容,而不是其路径。

无论如何,要显示它保持空格完整,请引用变量:echo "$test"

要运行从变量获取输入的程序,可以使用stdin redirecton,在这种情况下,它将是:

echo "$test" | xmllint -

您还可以避免使用变量:

ssh root@server "cat /dir/file.xml" | xmllint -

最后,在bash中,您还可以使用流程替换(请参阅参考资料man bash):

xmllint <(ssh root@server "cat /dir/file.xml")
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.