Próbuję przypisać dane wyjściowe cURL do zmiennej, takiej jak:
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
Jednak po uruchomieniu skryptu dzieje się co następuje:
./update.sh: 3: =[my ip address]: not found
Jak mogę $IP
poprawnie uzyskać wyjście ?
Odpowiedzi:
W powłoce nie umieszczasz znaku $ przed przypisywaną zmienną. Używasz $ IP tylko wtedy, gdy odnosisz się do zmiennej.
źródło
curl
? Dodawanie pustych-silent
liści$IP
...curl
wysyła swoje zaszumione wyjście do standardowego wyjścia błędów, więc pasek postępu powinien być ignorowany w przypadku takiego skryptu. Niemniej jednak--silent
lub-s
działa dobrze. Jeśli masz kłopoty, zadaj pytanie .curl -s
do wyłączania paska postępu i komunikatów o błędach.stderr
:IP=$(curl <url> 2>/dev/null)
To samo z czymś bardziej złożonym ... pobieranie regionu instancji ec2 z instancji.
źródło
$
zos.system
, INSTANCE_REGION nie ma wartości danych wyjściowych.