Frage zu "who | wc -l"

Hi,
Frage: übersetze ich folgenden Befehl richtig

who | wc -l zählt alle Zeilen die bei Aufruf von who geschrieben werden.


$who | wc -l macht dann was?
Danke.
 
$who gibt den Variablen-Inhalt von who aus ...

damit sollte die Zahl der ausgegebenen Zeilen exakt bei 1 sein ... sofernd er Variableninhalt im Normalfall kleiner 80 Zeichen ist und keine NewLine-Charakter hat ...

who ist ein Programmaufruf ... $ gibt immer den Variableninhalt der nachfolgend genannten Variable aus ...
 
$who gibt den Variablen-Inhalt von who aus ...

damit sollte die Zahl der ausgegebenen Zeilen exakt bei 1 sein ... sofernd er Variableninhalt im Normalfall kleiner 80 Zeichen ist und keine NewLine-Charakter hat ...
Was da im Einzelfall ausgegeben wird hängt ganz von dem Inhalt der Variablen ab. Mit der Anzahl der Zeichen hat das nichts zu tun.

Erstmal muss das erste Wort der Variablen ein existierender Befehl sein - denn irgendwas muss ja ausgeführt werden. Ansonsten gibt es einen Fehler.

Bash:
who=blabla
$who | wc -l
-bash: blabla: command not found
who="echo -e alles OK \nwieauchimmer\nso lala"
$who
alles OK
wieauchimmer
so lala
$who | wc -l
3
Übrigens verwendet man die Schreibweise mit einem führenden $ Zeichen in der Regel nur um anzuzueigen, das dies ein Befehl ist der in der Kommandozeile ausgeführt wird. Das $ gehört dabei nicht zum Befehl dazu. Dann steht zwischen dem $ und dem Variablennamen aber mindestens 1 Leerzeichen.

Gruß
 
Zurück