Wie bekomme ich "vorher ausgeführten Befehl" in einem Bash-Skript?

8

Ich benutze mehrere Bash-Sitzungen, und ich möchte den Verlauf von allen in einer Datei verfolgen (es ist mir egal, dass es aus mehreren Sitzungen gemultiplext wird, ich kann immer eine Sitzungskennung davor setzen). ) Ich habe es versucht

%Vor%

und auch

hinzufügen %Vor%

an die Variable $PROMPT_COMMAND . Aber keiner von ihnen funktioniert wirklich für mich, und ich verstehe nicht, warum sie nicht funktionieren (sie verhalten sich, soweit ich das beurteilen kann, sehr unbestimmt ... manchmal multiplexen sie Befehle von mehreren Sitzungen, manchmal nicht ).

Das Ziel dieser Frage ist es, einen alternativen Weg zu finden, Geschichte von allen Sitzungen zu behalten, wo ich kontrollieren kann, was ich in die Geschichte schreibe. Die Idee besteht darin, den "vorherigen Befehl" in einer Shell-Variablen zu speichern und diese Variable anschließend in einer Protokolldatei in der Definition von PS1 variable zu protokollieren.

Die Frage ist: Wie bekomme ich den "vorher ausgeführten Befehl" in einer Shell-Variable. Ich weiß, dass ich echo !! >> logfile.txt in der interaktiven bash Sitzung ausführen kann, um es in einer Protokolldatei aufzuzeichnen. Aber wie mache ich das in einer Skriptdatei (oder .bashrc-Datei)?

Ich habe es versucht

%Vor%

Aber nichts davon funktioniert.

Danke für deine Zeit, ~ Yogi

    
Yogeshwer Sharma 20.07.2011, 02:32
quelle

1 Antwort

9

Etwas wie

%Vor%

sollte funktionieren. Das heißt, Sie stoßen wahrscheinlich auf Probleme mit gleichzeitigen Zugriffen (lesen Sie: mehrere Shells überschreiben die Geschichte der anderen) und Sie können möglicherweise nicht besser von Hand tun.

    
geekosaur 20.07.2011, 02:36
quelle

Tags und Links