wGet 在 POST 请求中使用 sed 输出



UNIX世界相当陌生,并试图让我了解它的怪癖。

我正在尝试制作一个相当简单的 shell 脚本,该脚本使用 wGet 发送已使用 Sed 预处理的 XML 文件。

我想过使用管道,但它导致了一些奇怪的行为,它只是将我的 XML 输出到控制台中。

这是我到目前为止所拥有的:

File_Name=$1
echo "File name being sent to KCIM is : " $1
wget "http://testserver.com" --post-file `sed s/XXXX/$File_Name/ < template.xml` |
 --header="Content-Type:text/xml"

从输出中我可以看到我没有这样做,因为它创建了一个格式不正确的HTTP请求

开机自检数据文件<?xml' missing: No such file or directory Resolving <... failed: node name or service name not known. wget: unable to resolve host address <'

解释问题是什么以及解决方案的奖励积分

对于wget,选项post-file发送命名文件的内容。在您的情况下,您似乎直接传递数据,因此您可能想要--post-data.

你现在这样做的方式,bashsed获得输出,wget得到类似的东西:

wget ... --post-file <?xml stuff stuff stuff

因此,wget去寻找一个名为<?xml的文件,而不是逐字使用该文本。

相关内容

  • 没有找到相关文章

最新更新