Comment puis-je commande echo $ sans casser la mise en page
-
30-09-2019 - |
Question
Je suis en train de faire ce qui suit dans un script bash:
com=`ssh host "ls -lh"`
echo $com
Il fonctionne, mais l'écho brisera la sortie (au lieu d'obtenir toutes les lignes dans une colonne, je les ai tous dans une rangée).
Si je fais. ssh host ls -lh
dans le CLI, il me donnera la sortie correcte et la mise en page
Comment puis-je conserver la mise en page en faisant écho à une variable?
La solution
Vous avez besoin:
echo "$com"
Les citations font la coquille ne casse la valeur jusqu'à en « mots », mais passent comme un seul argument à echo
.
Autres conseils
Mettez des guillemets doubles autour de $ com:
com=`ssh host "ls -lh"`
printf "%s" $com | tr -dc '\n' | wc -c # count newlines
printf "%s" "$com" | tr -dc '\n' | wc -c
echo "$com"
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow