我无法将参数从我的文本文件传递到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
返回所需的结果。这个问题似乎相当微不足道,但任何帮助都表示赞赏。
答案 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'