WCM Forum

WCM Forum (http://www.wcm.at/forum/index.php)
-   Linux, UNIX, Open Source (http://www.wcm.at/forum/forumdisplay.php?f=13)
-   -   Pipe | (http://www.wcm.at/forum/showthread.php?t=65013)

ripper 01.08.2002 16:14

Pipe |
 
ich hätte da eine frage....

auf meinem rechner (suse linux 8.0, pentium 166) funktioniert irgendwie die datenweitergabe bei der Pipe nicht

theoretisch müsste ja wenn ich eingebe
Code:

cd /etc | ls
die liste der dateien im /etc ordner kommen...
es kommt aber die liste von dem aktuellen ordner
wenn ich zB eingebe
Code:

cd /etc | pwd
kommt /root wenn ich gerade im root verzeichnis bin....

weiß jemand wieso das nicht geht? wäre wichtig für shell scripts.....

thx

valo 01.08.2002 16:33

Re: Pipe |
 
Zitat:

Original geschrieben von ripper
ich hätte da eine frage....

auf meinem rechner (suse linux 8.0, pentium 166) funktioniert irgendwie die datenweitergabe bei der Pipe nicht

theoretisch müsste ja wenn ich eingebe
Code:

cd /etc | ls
die liste der dateien im /etc ordner kommen...
es kommt aber die liste von dem aktuellen ordner

mit cd (change directory) wechselst du in ein anderes verzeichnis

mit cd /etc wechselst du demnach von deinem derzeitigen 'aufenthaltsort' nach /etc

wenn du den "inhalt" von /etc auflisten lassen willst, musst nur ls /etc eingeben, und die sache hat sich...

wenn die liste zu lang fuer den bildschirm ist, koenntest du das ganze nache more pipen (ls /etc | more) dann kannst du rauf/runter scrollen
Zitat:

wenn ich zB eingebe
Code:

cd /etc | pwd
kommt /root wenn ich gerade im root verzeichnis bin....

weiß jemand wieso das nicht geht? wäre wichtig für shell scripts.....

thx

pwd zeigt dir an in welchem verzeichnis du dich gerade befindest, damenach ist es nicht erstaunlich, dass dir /root angezeigt wird wenn du dich gerade in /root befindest...

das |-zeichen verwendest du um die ausgabe eines programmes an ein anderes weiterzugeben, was willst du aber zb. von cd an pwd weitergeben?

Pavlovs_Dog 01.08.2002 16:34

naja - deine angeführten Beispiele "hinken" ein wenig.

Du müsstest "cd /etc; ls" eingeben um zu erreichen daß der Inhalt von "/etc" erscheint.

Wenn du ein Beispiel für die Anwendung einer Pipe brauchst:

ls -l | less

Die Ausgabe von "ls" wird an "less" (Seitenumbrecher) weitergegeben.

ls | wc -l

Die Ausgabe von "ls" wird an "wc" (Wortzähler) weitergegeben.

In einen "cd" oder "pwd" rein/rauszupipen macht wenig Sinn.


lg
Pav

ripper 01.08.2002 16:42

k sry hab gedacht geht mit cd auch....

Linuz 06.08.2002 15:25

mehrere befehle
 
Alle 3 befehle ausfuehren und in die ausgabe in die datei test schreiben..
(uptime; df -h; free) > /root/test

ein | less solltest du nicht in eine datei schreibend da es nichts bringt da du danach sowieso wieder mit less lesen musst ;-)
bsp: ls |less > ttt danach ein less ttt

du kannst auch nach einer find funktion ein less angeben.
z. B.

find -type f -exec grep -l irgendeinwort {} \; |less

suche in dateien nach den wort irgendeinwort und schick das gefundene ins less

mit internetten gruessen
http://linuz.at

_m3 06.08.2002 15:37

bei einem "ls | wc -l" würde ich aber eher "ls -1 | wwc -l" eingeben, da sonst der Linecount ned unbedingt stimmt ;)


Alle Zeitangaben in WEZ +2. Es ist jetzt 08:30 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
© 2009 FSL Verlag