Shell-忽略额外参数的命令
我已经编写了一个shell脚本,通过Shell-忽略额外参数的命令,shell,amazon-web-services,amazon-ec2,aws-cli,Shell,Amazon Web Services,Amazon Ec2,Aws Cli,我已经编写了一个shell脚本,通过curlfrom获取我的IP地址 我试图做的是获取所有安全组的列表,并通过AWS CLI将该IP地址添加到每个安全组 到目前为止,我的剧本是: #!/bin/bash # Get IP Address IP_ADDR="`curl http://checkip.amazonaws.com`" IP_ADDR="$IP_ADDR/32" cat /dev/null > /tmp/ec2.info tmpFile="/tmp/ec2.info" ec
curl
from获取我的IP地址
我试图做的是获取所有安全组的列表,并通过AWS CLI将该IP地址添加到每个安全组
到目前为止,我的剧本是:
#!/bin/bash
# Get IP Address
IP_ADDR="`curl http://checkip.amazonaws.com`"
IP_ADDR="$IP_ADDR/32"
cat /dev/null > /tmp/ec2.info
tmpFile="/tmp/ec2.info"
ec2Info=`ec2-describe-group --region eu-west-1 > $tmpFile`
sec_groups=`cat $tmpFile | grep GROUP | cut -f4`
echo "You are using IP Address: $IP_ADDR"
echo ""
for security_group in $sec_groups
do
echo ""
echo $security_group
echo ""
ec2-authorize --region eu-west-1 $security_group –p 22 -s $IP_ADDR
done
该脚本在获取IP地址和我的安全组列表时运行良好。但是,当脚本到达ec2 authorize
行时,我遇到了一个问题
我收到一条错误消息:
WARNING: Ignoring extra parameter(s): [ ?p, 22 ]
Required option '-p, --port-range PORT-RANGE' missing (-h for usage)
从脚本中可以看到,我添加了指定端口的-p
参数。它似乎忽略了$security\u group
变量之后的所有内容
有什么想法吗?您键入的不是减号,而是一个破折号(Unicode U+2013)。因此,只需将
-p
替换为-p
我注意到,你在不知不觉中解决了这个问题。这就是它工作的原因,不是因为您将args放入var
这就是为什么在错误消息中有一个问号:[?p,22]