首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在curl命令中使用来自文件的数据?

问如何在curl命令中使用来自文件的数据?
EN

Stack Overflow用户
提问于 2016-07-19 16:12:16
回答 2查看 803关注 0票数 2

我有一个包含fqdn和hostname变量的文本文件。文件如下所示

代码语言:javascript
复制
first_fqnd    first_hostname
second_fqdn     second_hostname
.....      .....

我必须在bash脚本中使用curl更新一些数据,但是我必须从这个文本文件中获取fqdn和hostname,并为每一对fqdn和hostname创建curl。

我的卷曲应该是这样的:

代码语言:javascript
复制
curl -H "Content-Type:application/json" -XPUT "https://pup.pnet.pl/api/hosts/**fqdn from file**" -d '{"host":{"name": "**hostname from file**"}}' --cacert bundle.pem --cert xxx-pem.cer --key xxx-privkey.pem

如何将这些变量从文件传递到curl?我考虑过使用awk,但我不知道如何在curl命令中使用它

EN

回答 2

Stack Overflow用户

发布于 2016-07-19 16:16:18

使用while结构读取文件行,并将空格分隔的参数作为两个相关变量fqdn和hostn

代码语言:javascript
复制
while read fqdn hostn; do
    curl -H .... -XPUT "https://pup.pnet.pl/api/hosts/${fqdn}" \
      -d '{"host":{"name": "'"${hostn}"'"}}' --cacert ....; done <file.txt
票数 5
EN

Stack Overflow用户

发布于 2016-07-19 16:19:19

尝试如下所示:

代码语言:javascript
复制
#!/bin/bash

while read fqdn hostname; do
    curl -H "Content-Type:application/json" -XPUT \
        "https://pup.pnet.pl/api/hosts/${fqdn}" \
        -d '{"host":{"name": "'${hostname}'}}' --cacert bundle.pem \
        --cert xxx-pem.cer --key xxx-privkey.pem
done <input_file.txt

while read fqdn hostname将从标准输入中逐行获取输入,并通过Bash的内部字段分隔符将其拆分为“列”变量$fqdn和$hostname。有关详细信息,请参阅Catching User Input。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38452857

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档