2010-04-21 16 views
3

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 cassera la sortie (au lieu d'obtenir toutes les lignes une colonne, je les ai tous dans une rangée).

Si je le fais: ssh host ls -lh dans la CLI, il me donnera la bonne sortie et mise en page. Comment puis-je préserver la disposition lors de l'écho d'une variable?

Répondre

2

Vous devez:

echo "$com" 

Les citations font la coquille ne casse la valeur jusqu'à en « mots », mais passent comme un seul argument à echo.

+0

Oh c'mon, je me attendais quelque chose de plus "difficile". Mais néanmoins, cela a fonctionné. Merci! – w00t

1

guillemets doubles autour com $ Mettre:

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" 
+0

Belle explication avec ces commandes printf. – w00t