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?

Était-ce utile?

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
scroll top