2017-12-14 4 views
0

Diese Frage ist eine Folge auf Piping an interactive session to a file.Piping eine interaktive Bash-Sitzung in eine Datei

Aber da ich in diesem Beitrag nicht kommentieren kann, werde ich hier fragen. Ich habe den folgenden Code in einem Bash-Skript:

tee -a file.log | (ls -a)| tee -a file.log 

Das Programm läuft in Ordnung, aber ich bin verpflichtet, die Enter-Taste für das Skript zu drücken, um zu beenden.

Gibt es trotzdem für das Skript zu beenden, ohne eine Aktion vom Benutzer?

Hinweis: ls -a ist nur ein Beispiel, das ich hier verwende, um das Problem zu zeigen.

Antwort

1

Stellen Sie den ersten Abschlag leer Eingang zu nehmen, damit es nicht auf stdin wird, etwa so:

tee -a file.log <<< "" | (ls -a)| tee -a file.log 

oder

echo | tee -a file.log | (ls -a)| tee -a file.log 

oder

tee -a file.log < "" | (ls -a)| tee -a file.log 
+0

Hinweis verlieren Sie die Möglichkeit, mit dieser Methode eine reguläre Eingabe zu liefern, so dass die Verwendung für eine Shell oder einen Interpreter möglicherweise nicht wie vorgesehen funktioniert – TCulp

Verwandte Themen