Das liegt daran, dass echo
überhaupt kein Piping ist - es interpretiert die Ausgabe von ps ax
als Variable, und (nicht angeführte) Variablen in bash komprimieren im Wesentlichen Leerzeichen - einschließlich Zeilenumbrüchen.
Wenn Sie die Ausgabe von ps
pipen möchten, dann pipen Sie es:
Überdenken Sie Ihr Problem / Ihre Lösung.
Wenn Sie $ (ps ax) möchten - mit beibehaltenen Zeilenumbrüchen - USUALLY bedeutet ein schlechtes Design und Sie möchten wahrscheinlich Pipes oder Umleitungen verwenden. Normalerweise - also, vielleicht ist es in Ordnung - wirklich zu fragen, was Sie erreichen wollen. :)
Sprechen Sie über Rohrleitungen die Ausgabe? Ihre Frage lautet "pipe", aber Ihr Beispiel ist eine Befehlsersetzung:
%Vor%Nützlicher?
%Vor%Wenn Sie über die Befehlsersetzung sprechen, brauchen Sie Zitate, auf die andere bereits hingewiesen haben Um die Shell zu zwingen, Whitespace nicht wegzuwerfen:
%Vor%