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

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

尝试将另一台服务器的 .xml 文件读入变量

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

但是在执行时echo $test,它会以单行格式打印.xml 文件。

然后尝试执行xmllint此文件,

xmllint $test

并在每个标签上出现以下错误。

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

注意:执行相同的过程时,但在本地 .xml 文件(没有ssh)上,它可以正常工作并获得预期的结果。

有什么办法可以解决这个问题吗?或者使用xmllint远程工具?

答案1

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

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

要运行从变量获取输入的程序,您可以使用 stdin 重定向,在本例中它将是:

echo "$test" | xmllint -

您还可以避免使用变量:

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

最后,在 bash 中,您还可以使用进程替换(参见man bash):

xmllint <(ssh root@server "cat /dir/file.xml")

相关内容