Eu estou tentando atribuir a saída de cURL em uma variável assim:
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
No entanto, quando executo o script, acontece o seguinte:
./update.sh: 3: =[my ip address]: not found
Como posso obter a saída $IP
corretamente?
Respostas:
No shell, você não coloca um $ na frente de uma variável que está atribuindo. Você só usa $ IP quando se refere à variável.
fonte
curl
? Adicionando-silent
folhas$IP
vazias ...curl
envia sua saída ruidosa para o stderr, portanto a barra de progresso deve ser ignorada no caso de um script como este. No entanto,--silent
ou-s
funciona muito bem. Se você tiver problemas, faça uma pergunta .curl -s
para desativar a barra de progresso e as mensagens de erro.stderr
:IP=$(curl <url> 2>/dev/null)
Mesmo com algo mais complexo ... obter a região da instância ec2 de dentro da instância.
fonte
$
poros.system
, INSTANCE_REGION não tem o valor da saída.