从文本文件传递输入作为aws route53的参数

时间:2015-09-22 21:37:45

标签: bash amazon-web-services amazon-route53

我无法将参数从我的文本文件传递到aws route53。

for line in $(cat input.txt);
do aws route53 list-resource-record-sets --hosted-zone-id $line;
done

返回错误

No hosted zone found with ID: myid"

但手动调用以下

do aws route53 list-resource-record-sets --hosted-zone-id myid

返回所需的结果。这个问题似乎相当微不足道,但任何帮助都表示赞赏。

1 个答案:

答案 0 :(得分:1)

您的使用没有任何问题,问题在于您的input.txt文件。

对于测试我在我的txt文件中有这个:

$ cat input.txt a foo b c d

并验证它: $ for line in $(cat input.txt); do echo aws route53 list-resource-record-sets --hosted-zone-id $line; done aws route53 list-resource-record-sets --hosted-zone-id a aws route53 list-resource-record-sets --hosted-zone-id foo aws route53 list-resource-record-sets --hosted-zone-id b aws route53 list-resource-record-sets --hosted-zone-id c aws route53 list-resource-record-sets --hosted-zone-id d

请注意,for解释空格和换行符(因为cat),所以“a foo”将显示为两次迭代,除非你正确修改for循环以正确迭代文件中的行(并正确添加单引号)避免传递多个参数,其中一个参数应该是--hosted-zone-id

$ while read line; do echo aws route53 list-resource-record-sets --hosted-zone-id "'${line}'"; done <input.txt aws route53 list-resource-record-sets --hosted-zone-id 'a foo' aws route53 list-resource-record-sets --hosted-zone-id 'b' aws route53 list-resource-record-sets --hosted-zone-id 'c' aws route53 list-resource-record-sets --hosted-zone-id 'd'