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 $IPcorrectamente?

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-silenthojas$IPvacías ...curlenví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,--silento-sfunciona bien. Si tiene problemas, haga una pregunta .curl -spara 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.