J'essaye d'assigner la sortie de cURL dans une variable comme ceci:
#!/bin/sh
$IP=`curl automation.whatismyip.com/n09230945.asp`
echo $IP
sed s/IP/$IP/ nsupdate.txt | nsupdate
Cependant, lorsque j'exécute le script, les événements suivants se produisent:
./update.sh: 3: =[my ip address]: not found
Comment puis-je obtenir la sortie $IP
correctement?
Réponses:
Dans le shell, vous ne mettez pas un $ devant une variable que vous assignez. Vous n'utilisez $ IP que lorsque vous faites référence à la variable.
la source
curl
? Ajout de-silent
feuilles$IP
vides ...curl
envoie sa sortie bruyante à stderr, donc la barre de progression doit être ignorée dans le cas d'un script comme celui-ci. Néanmoins,--silent
ou-s
fonctionne très bien. Si vous rencontrez des problèmes, posez une question .curl -s
pour désactiver la barre de progression et les messages d'erreur.stderr
:IP=$(curl <url> 2>/dev/null)
Idem avec quelque chose de plus complexe ... obtenir la région d'instance ec2 à partir de l'instance.
la source
$
paros.system
, INSTANCE_REGION n'a pas la valeur de la sortie.