Wie echo $ i Befehl ohne das Layout zu brechen
-
30-09-2019 - |
Frage
Ich versuche, die folgenden in einem Bash-Skript zu tun:
com=`ssh host "ls -lh"`
echo $com
Es funktioniert, aber das Echo wird die Ausgabe bricht (statt alle Zeilen in einer Spalte bekommen, bekomme ich sie alle in einer Reihe).
Wenn ich das tue. ssh host ls -lh
im CLI es gibt mir die korrekte Ausgabe und das Layout
Wie kann ich das Layout beibehalten, wenn eine Variable Echo?
Lösung
Sie brauchen:
echo "$com"
Die Zitate machen die Schale nicht den Wert zerfallen in „Worte“, aber es als ein einziges Argument zu echo
passieren.
Andere Tipps
Setzen Sie doppelte Anführungszeichen um $ 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"
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow