我想知道是否可以提供而不是文件路径文件内容本身。例如,curl
需要指定证书的文件路径。我在变量中有证书时该怎么办?
我不能把它放到stdin中,因为我正在生成xml来发送它。
为什么我把证书变成变量?因为最后我想只有一个带脚本的文件,我可以轻松地分发给我的同事。
我想到的唯一解决方案是将变量保存到文件,然后提供curl
的文件路径
read -d '' CERT << "CERTEND"
-----BEGIN CERTIFICATE-----
### something very secret here ###
-----END CERTIFICATE-----
CERTEND
curl -# -k --cert ??? -d @xml.xml -H "Content-Type: application/soap+xml" -H 'SOAPAction: ""' https://1.1.1.1/EndpointPort`
答案 0 :(得分:1)
您可以使用流程替换:
curl --cert <(echo "$CERT") ...
这将为您创建一个管道。括号中的命令输出转到此管道(在我们的例子中为echo $CERT
),并返回管道的文件名。