
Ich möchte den Inhalt der Datei in den Einfügepuffer einlesen und per Standardausgabe auf dem Bildschirm ausgeben. Ich habe Folgendes gemacht:
screen -X readbuf /home/nitro/file|screen -X writebuf|cat /tmp/screen-exchange
aber der cat
Befehl zeigte mir die Screen-Exchange-Datei mit dem vorherigen Ergebnis des Readbuf-Befehls. Wenn ich diese Befehle separat ausführe, ist alles korrekt und ich erhalte die geänderte Screen-Exchange-Datei.
Wie kann ich alle drei Befehle readbuf, writebuf und cat gleichzeitig ausführen?
Antwort1
Diese Befehle:
screen -X readbuf /home/nitro/file
screen -X writebuf
cat /tmp/screen-exchange
fungieren nicht als Teile einer Pipe, aber Ihr zusammengesetzter Befehl versucht, sie so zu behandeln. Das heißt, jeder Schritt liest nicht die Standardausgabe des vorherigen Schritts, sodass zwischen ihnen weniger kausale Beziehungen bestehen, als wenn Sie Folgendes eingegeben hätten:
screen -X readbuf /home/nitro/file; screen -X writebuf; cat /tmp/screen-exchange
oder
screen -X readbuf /home/nitro/file && screen -X writebuf && cat /tmp/screen-exchange