man ls|cat
man ls|head n
{ sleep 10; echo "q"; }|cat >kram
{ sleep 10; echo "q"; }|info bash
echo -e "Hier sind \e[5B vier Zeilen leer"
#!/bin/sh
while :
do
echo "etwas immer wieder machen"
echo "beenden mit q"
read -sn1 par
if [ "$par" == "q" ]
then
exit
fi
done
Runde Klammern statt geschwiffene, dann bist du näher dran. Aber interaktive Programme wie info haben da meinst Probleme mit, weil die Daten schneller reinkommen als etwaige Dateien, auf die die per Pipe zugeschickten Befehle angewandt werden sollen, zur Verfügung stehen.sc_m schrieb:Im Prinzip sollte ja so etwas funktionieren:
Die Datei "kram" wird gleich beim Aufruf angelegt, aber erst nach 10 Sekunden wird "q" hineingeschrieben. Dummerweise scheint sich "man" aber nicht um das "q" in STDIN zu kümmern. Es funktioniert dagegenCode:{ sleep 10; echo "q"; }|cat >kram
Code:{ sleep 10; echo "q"; }|info bash
> man bash
[...]
{ list; }
list is simply executed in the current shell environment. list must be terminated
with a newline or semicolon. This is known as a group command. The return status is
the exit status of list. Note that unlike the metacharacters ( and ), { and } are
reserved words and must occur where a reserved word is permitted to be recognized.
Since they do not cause a word break, they must be separated from list by whitespace.
[...]
15:34 shanghai:~ > ( cd /; );
15:34 shanghai:~ > { cd /; };
15:34 shanghai:/ >
jengelh schrieb:Wenn es mit `echo -en "\t\n" | w3m ...` nicht geht, kannst du es ja mal mit `echo -en "\t\n" | pipe2pt w3m ...` (pipe2pt) versuchen.
echo -en "\t" | /usr/lib/hxtools/supp/pipe2pt w3m www.google.de