Ich rman Befehle aus Bash-Skripte ausführen. Ich gebe meine Befehle an rman weiter, indem ich hier Dokumente verwende. Ich möchte die Ausgabe erfassen und gleichzeitig auf der Konsole ausgeben (Echtzeit). Ich habe diese Lösung gefunden, aber ich mache es nicht, um mit here-docs zu arbeiten.Bash Speichern Ergebnis eines Befehls in einer Variablen und drucken Sie es auf der Konsole während der Verwendung von hier Dokumente
VAR=$(ls | tee /dev/tty)
Was ich zur Zeit laufen ist:
output=$(rman <<RMAN
$rman_script
RMAN
)
Wissen Sie, wie in diesem Beispiel RMAN ich auch auseinander stdout an die Konsole drucken könnte es in dem output
Variable von der Speicherung? Jede Hilfe wird geschätzt. Prost.
Dies sieht wie eine schlechte Passform für ein Bash-Skript aus. Vielleicht könnte etwas von der Hässlichkeit mit 'output = $ (echo" $ rman_script "| rman) umgestaltet werden, aber für mich führt das Sammeln von Eingaben in eine Bash-Variable bereits zu einem verdächtigen Geruch (und dazu auch das Skript in einer Variablen) Angelegenheit). – tripleee
Ich denke, es gibt keine Wahl. Ich habe keinen Mechanismus gefunden, um RMAN-Fehler besser zu verarbeiten :(Die einzige Möglichkeit ist die Überprüfung der Ausgabe und des Rückgabecodes. Was ist daran schlimm, ein Skript in einer Variablen zu haben? Könnten Sie es erklären? Ich mache es immer so, bevor ich I ausführe kann einige Protokollnachrichten ausgeben echo "$ rman_script" ' – damian
Diese Box ist zu klein für eine korrekte Darstellung, und ich lese ein bisschen zwischen den Zeilen in Ihrer Frage, aber ein häufiger Fehler ist es, Ergebnisse im Speicher über linear zu speichern und skalierbare Verarbeitung in einer Pipeline, die normalerweise die natürlichste Art in einem Shell-Skript ist – tripleee