我有一个包含fqdn和hostname变量的文本文件。文件如下所示
first_fqnd first_hostname
second_fqdn second_hostname
..... .....我必须在bash脚本中使用curl更新一些数据,但是我必须从这个文本文件中获取fqdn和hostname,并为每一对fqdn和hostname创建curl。
我的卷曲应该是这样的:
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命令中使用它
发布于 2016-07-19 16:16:18
使用while结构读取文件行,并将空格分隔的参数作为两个相关变量fqdn和hostn
while read fqdn hostn; do
curl -H .... -XPUT "https://pup.pnet.pl/api/hosts/${fqdn}" \
-d '{"host":{"name": "'"${hostn}"'"}}' --cacert ....; done <file.txt发布于 2016-07-19 16:19:19
尝试如下所示:
#!/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.txtwhile read fqdn hostname将从标准输入中逐行获取输入,并通过Bash的内部字段分隔符将其拆分为“列”变量$fqdn和$hostname。有关详细信息,请参阅Catching User Input。
https://stackoverflow.com/questions/38452857
复制相似问题