Comment inclure un '&' dans un bash curl déclaration
Je suis en train d'utiliser curl en bash pour télécharger une page web, mais le &
symbole dans l'URL n'est pas interprété comme un caractère comme je le voudrais. Des idées sur comment je peux convaincre bash que le symbole &
est juste ennuyeux personnage et rien de spécial?
- Jetez un oeil à la rubrique suivante, ce qui devrait vous aider - stackoverflow.com/questions/2067969/...
- J'ai essayé de remplacer le
&
symbole avec\&
,'&'
,"&"
,^&
mais n'ont pas été en mesure d'obtenir la URL pour évaluer correctement. En fait, la'&'
fonctionne quand je lance la commande curl à partir de la Borne.app, mais ne parvient pas quand je la place dans un script bash, l'envelopper dans une boucle et de l'exécuter.
Vous devez vous connecter pour publier un commentaire.
De mettre l'URL en entier à l'intérieur de guillemets doubles devez prendre soin de votre problème.
${i}
ne retourne pas une valeur.Êtes-vous en utilisant le & comme un délimiteur pour OBTENIR l'URL? Ou dans un morceau de données?
Si c'est dans les données, vous devez coder HTML personnage, si ce n'est, entourer de guillemets.
L'encodage pour
&
devrait devenir%26
dans l'URL.&
symbole comme un morceau de données, presque exactement comme vous l'avez indiqué. Le hic, c'est que, au lieu de valeurs numériques, je suis en utilisant${i}
. Je tiens donc à obtenirhttp://www.example.com?m=method&args=${i}
pour évaluer comme une URL.De mettre des guillemets simples autour de la
&
symbole semble fonctionner. C'est, en utilisant une URL commehttp://www.example.com/page.asp?arg1=${i}'&'arg2=${j}
avec curl renvoie la page web demandée.Au lieu d'essayer de l'évasion "&" caractères, vous pouvez spécifier l'url http paramètres dans les requêtes POST avec le paramètre-d, comme illustré ci-dessous:
Si la demande en est un, alors vous devriez également ajouter l'option-G, ce qui indique à curl pour envoyer les données avec une requête GET.
Vous pouvez utiliser
%26
au lieu&
.L'entité code fonctionne très bien.