Si le corps de réponse HTTP pour une demande de boucle ne contient pas de nouvelle ligne de fin, je me retrouve avec cette condition vraiment ennuyeuse où l'invite du shell est au milieu de la ligne, et l'échappement est suffisamment gâché que lorsque je mets la dernière boucle à l'écran, en supprimant les caractères de cette commande curl, supprimez les mauvais caractères.
Par exemple:
[root@localhost ~]# curl jsonip.com
{"ip":"10.10.10.10","about":"/about"}[root@localhost ~]#
Y a-t-il une astuce que je peux utiliser pour ajouter automatiquement une nouvelle ligne à la fin d'une réponse curl, pour ramener l'invite sur le bord gauche de l'écran?
echo "$(curl localhost:8001/api)"
, de répondre à cette réponse: unix.stackexchange.com/a/217611/110338Réponses:
Depuis le fichier man:
Essayez donc d'ajouter ce qui suit à votre
~/.curlrc
fichier:la source
echo '-w "\n"' >> ~/.curlrc
-w "\n"
manuellement à chaque commande curl et TIL~/.curlrc
existe!-w "\nKLJLJKLJ LJKLLKJ"
à mon~/.curlrc
et j'ai couru une boucle et je n'ai obtenu ni nouvelle ligne ni caractères étranges._
plus.
. Il y a des chances que votre boucle recherche~/_curlrc
et, par conséquentecho '-w "\n"' >> ~/_curlrc
, fonctionnera probablement. Ça fait pour moi. btw: curl se plaindra des espaces non-w "\n"
ou d'ajouter au-; echo
dessus de la modification de votre.curlrc
. Si vous modifiez votre curlrc, certains scripts peuvent se casser s'ils ne gèrent pas une nouvelle ligne à la fin des données de réponse. Personnellement, je m'en tiendrai aux ajouts sur la ligne de commande plutôt que de modifier le rc.Essayez ça:
PRODUCTION
C'est aussi simple que cela ;)
(et non limité à la commande curl mais toutes les commandes qui ne se terminent pas par une nouvelle ligne)
la source
Pour plus d'informations ainsi qu'une nouvelle ligne propre après la boucle
~/.curlrc
(Plus d'options sont disponibles ici )
redirect_url
sera vide si la demande n'est pas redirigée ou si vous utilisez-L
pour suivre la redirection.Exemple de sortie:
Modifier , pour rendre les choses plus lisibles, vous pouvez ajouter des couleurs ANSI à la
-w
ligne, ce n'est pas si facile à écrire directement, mais ce script peut générer un~/.curlrc
fichier avec des couleurs.la source
La solution générale pour bash consiste à ajouter un symbole de nouvelle ligne dans l'invite de commande:
Voir la question connexe ( Comment avoir une nouvelle ligne avant l'invite bash? ) Et la réponse correspondante
Cette solution couvre chaque commande, pas seulement la boucle.
Le seul effet secondaire est que vous obtenez une invite de commande après chaque 2e ligne.
la source