#!/bin/bash
echo "$(curl -s -I https://google.com|grep Server)" abc
renvoie :
abcer: gws
et bash -x
affiche :
++ grep Server
++ curl -s -I https://google.com
' abco 'Server: gws
abcer: gws
mais
echo abc "$(curl -s -I https://google.com|grep Server)"`
renvoie
abc Server: gws
En d'autres termes, si j'ajoute du texte APRÈS la commande curl, il est mutilé, mais ce n'est pas grave si je l'ajoute avant curl.
Que se passe-t-il ? Je n'arrive pas à comprendre.
Réponse acceptée :
echo $(curl -s -I https://google.com|grep Server)|cat -A
montre que la valeur retournée par curl a un ^M (un retour chariot). Lorsque vous imprimez la sortie de la boucle, le retour chariot ramène le « curseur » au début de la ligne, où il imprime ensuite le « abc », écrasant « Serv ».
Lors de votre deuxième tentative, le retour chariot n'a aucun effet évident.