staging.inyokaproject.org

echo. Unterschied, ob man den Text vor oder nach der Umleitung in eine Datei schreibt

Status: Gelöst | Ubuntu-Version: Ubuntu 16.04 (Xenial Xerus)
Antworten |

Strict

Anmeldungsdatum:
17. Juni 2016

Beiträge: 17

Habe festgestellt, dass beide Varianten gehen:

echo "Ein Text" > file

echo > file "Ein Text"

Gibt es zwischen diesen beiden Befehlen Unterschiede in speziellen Situationen? Also, dass man den Text entweder direkt nach echo und vor der Umleitung (>) hinschreibt, oder hinter den file? Es gibt ja des öfteren verschiedene Möglichkeiten um eine Sache zu realisieren, wobei es je nach Anwendung spezifische Unterschiede gibt.

frostschutz

Avatar von frostschutz

Anmeldungsdatum:
18. November 2010

Beiträge: 7795

Du hast > file echo "Ein Text" vergessen.

IMHO schlechter Stil. >file gehört für mich ans Ende und nicht irgendwo mitten rein, auch wenn das auch funktioniert.

Die anderen Schreibweisen sieht man nicht oft, ehrlich gesagt denke ich da immer zuerst an einen Syntaxfehler.

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Strict schrieb:

Habe festgestellt, dass beide Varianten gehen:

Das habe ich auch erst spät in meinem Shell-Leben entdeckt.

echo "Ein Text" > file

echo > file "Ein Text"

Gibt es zwischen diesen beiden Befehlen Unterschiede in speziellen Situationen?

Nein. Ansonsten: was frostschutz schrieb.

Vain

Avatar von Vain

Anmeldungsdatum:
12. April 2008

Beiträge: 2510

echo >foo "hallo welt" erscheint mir auch wunderlich.

Was manchmal ganz nett ist, ist, die Eingabe an den Anfang zu schreiben:

1
<inputfile filter1 | filter2 | filter3 >output

Das ist dann auch besser lesbar als die sonst übliche Variante:

1
filter1 <inputfile | filter2 | filter3 >output

Gerade, wenn man’s interaktiv an der Shell benutzt, ist das angenehm, weil es sich dann leicht(er) durch etwas anderes ersetzen lässt, da es ohnehin schon am Zeilenanfang steht:

1
program_generates_output | filter1 | filter2 | filter3 >output

rklm Team-Icon

Projektleitung

Anmeldungsdatum:
16. Oktober 2011

Beiträge: 13242

Ich habe auch folgenden Alias in meiner ~/bash_aliases definiert.

1
alias noerr='2>/dev/null'

☺

Antworten |