Saya mencoba untuk menetapkan output cURL ke dalam variabel seperti:
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
Namun, ketika saya menjalankan skrip, hal berikut terjadi:
./update.sh: 3: =[my ip address]: not found
Bagaimana saya bisa mendapatkan output $IP
dengan benar?
Jawaban:
Dalam shell, Anda tidak menaruh $ di depan variabel yang Anda tetapkan. Anda hanya menggunakan $ IP saat Anda merujuk ke variabel.
sumber
curl
? Menambahkan-silent
dedaunan$IP
kosong ...curl
mengirimkan output berisik ke stderr, sehingga bilah kemajuan harus diabaikan dalam kasus skrip seperti ini. Namun demikian,--silent
atau-s
berfungsi dengan baik. Jika Anda memiliki masalah, silakan ajukan pertanyaan .curl -s
untuk menonaktifkan bilah kemajuan dan pesan kesalahan.stderr
:IP=$(curl <url> 2>/dev/null)
Sama dengan sesuatu yang lebih kompleks ... mendapatkan wilayah instance EC2 dari dalam instance.
sumber
$
denganos.system
, INSTANCE_REGION tidak memiliki nilai output.