2014-01-22 4 views
-1

Я написал скрипт, который получит в свой IP-адрес через curl от http://checkip.amazonaws.comShell - команда игнорирует дополнительные параметры

Что я пытаюсь сделать, это получить список всех моих групп безопасности и добавить, что IP-адрес каждой группе безопасности через CLI AWS.

Сценарий у меня до сих пор:

#!/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_group.

Любые идеи?

ответ

2

Вместо знака «минус» вы набрали en dash (Unicode U + 2013). Так что просто замените –p на -p.

Я заметил в your answer, вы исправили это, не осознавая этого. Вот почему это сработало не потому, что вы ввели args в var.

И вот почему в сообщении об ошибке появился знак вопроса: [ ?p, 22 ]

Смежные вопросы