GNU/Linux >> Tutoriels Linux >  >> Linux

Texte en écho après la commande Curl sur la même ligne ?

#!/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.


Linux
  1. Bash Echo La ligne de commande exécutée sur la ligne de commande elle-même (pas dans un script) ?

  2. Comment analyser chaque ligne d'un fichier texte comme argument d'une commande ?

  3. Télécharger des fichiers via la ligne de commande sous Linux

  4. Créer des fichiers en utilisant la ligne de commande sous Linux

  5. Migrer un serveur Linux depuis la ligne de commande

Utiliser plus pour afficher les fichiers texte sur la ligne de commande Linux

Utilisation de less pour afficher les fichiers texte sur la ligne de commande Linux

Comment utiliser Nano, l'éditeur de texte en ligne de commande Linux

Manipuler du texte en ligne de commande avec grep

Micro - Un éditeur de texte basé sur la ligne de commande pour Linux

10 meilleurs éditeurs de texte en ligne de commande Lite sous Linux [Facile à utiliser]