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
.
你现在这样做的方式,bash
从sed
获得输出,wget
得到类似的东西:
wget ... --post-file <?xml stuff stuff stuff
因此,wget
去寻找一个名为<?xml
的文件,而不是逐字使用该文本。