2016-07-29 62 views
0

Bitte ertragen Sie mit mir, wenn meine Terminologie oder Syntax ist weniger als stellar (noch lernen). Ich habe derzeit ein einfaches Bash-Skript, das die Argumente des Befehls überprüft und Dateinamen mit passendem Text ausgibt. Dieser Teil meines Skripts funktioniert ordnungsgemäß über einen Befehl grep und piped an Xargs für die ordnungsgemäße Formatierung.BASH speichern stdout in neue Datei bei der Ausführung

Beim Ausführen des Skripts, ich durchlaufe eine einfache Schleife, um zu überprüfen, ob der Wert null ist und dann zum Ausführen meiner Variablen/Suche wenn nicht.

Meine Frage ist: Ist es möglich, dieses Skript über stdout ausgeben und auch eine neue Datei jedes Mal speichern, wenn es mit der Benutzereingabe und Datum/Uhrzeit ausgeführt wird? (aber nicht überschreiben) EX: report-bob-0729161500.rpt

Ich sah die gleichen anderen Vorschläge zu Tee mit dem Befehl zu verwenden, aber ich habe versucht, es in das Skript zu arbeiten. In ähnlicher Weise wurde in einem anderen Vorschlag angegeben, exec>> (tee -i logfile.txt) zu verwenden, aber ich bin mir nicht sicher, wie man das Datum/die Zeit und die $ 1-Eingabe bei jeder Ausführung des Skripts korrekt in neue Dateien einfügt.

Hilfe oder empfohlene Ressourcen?

Vielen Dank.

EDIT: Ich habe versucht, einfach die Echo-Anweisungen an den Tee-Befehl, die funktioniert. Ich bin jedoch immer noch neugierig, ob jemand andere Vorschläge hat, um diese Aufgabe mit alternativen Methoden zu lösen. Vielen Dank.

Mit Echo-Anweisungen geleitet abschlagen: (? Anhängen mit gegebenenfalls)

SEARCH=`[search_variable]`                 
    DATE=`date +"%m%d%y%k%M"`   

    if [ -z "$SEARCH" ]                    
    then                        
    echo "$1 not found."                    
    else                        
    echo -e "REPORT LISTING\n\n" | tee tps-list-$1-$DATE.rpt                
    echo "$SEARCH" | tee tps-list-$1-$DATE.rpt                      
    fi 

Antwort

0

Wenn Sie es innerhalb das Skript tun wollen, warum dann nicht nur sowohl die Standardausgabe zu schreiben und die Datei . Vielleicht ein bisschen mehr schreiben, aber es gibt vollständige Kontrolle.

Leon

+0

Ehrlich gesagt, ich bin mir nicht sicher, der beste Weg, um dies zu erreichen, also der Grund, warum ich die beiden Vorschläge mit Tee enthalten. Ich weiß, dass ich es innerhalb des Skripts haben möchte, aber das Umleiten jeder Zeile scheint redundant zu sein. Ich hatte auf einige Vorschläge oder Ressourcen gehofft, die mehr Licht auf die Verwendung von tee innerhalb des Skripts oder auf einen anderen mir unbekannten Befehl werfen könnten, der neue Dateien erstellen würde (keine einzige Protokolldatei anhängen). – NewBashUser226