Estoy tratando de asignar la salida de cURL en una variable como esta:
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
Sin embargo, cuando ejecuto el script sucede lo siguiente:
./update.sh: 3: =[my ip address]: not found
¿Cómo puedo obtener la salida $IP
correctamente?
Respuestas:
En shell, no pones un $ delante de una variable que estás asignando. Solo usa $ IP cuando se refiere a la variable.
fuente
curl
? Agregando-silent
hojas$IP
vacías ...curl
envía su salida ruidosa a stderr, por lo que la barra de progreso debe ignorarse en el caso de un script como este. Sin embargo,--silent
o-s
funciona bien. Si tiene problemas, haga una pregunta .curl -s
para deshabilitar la barra de progreso y los mensajes de error.stderr
:IP=$(curl <url> 2>/dev/null)
Lo mismo con algo más complejo ... obtener la región de instancia ec2 desde dentro de la instancia.
fuente
$
conos.system
, INSTANCE_REGION no tiene el valor de la salida.