So erhalten Sie den Statuscode des Programms, das an den Linux-Dialogbefehl weitergeleitet wird

699
WRz

Ich versuche, Linux dialogzu verwenden, um das einfache Installationsprogramm für Ubuntu vorzubereiten. Der eigentliche Befehl lautet:

 dpkg -i package.deb 2>&1 | dialog --programbox "Installing..." 10 100 

Ich möchte dialogalle Ausgaben anzeigen, die durch den dpkgBefehl erzeugt werden, unabhängig davon, ob es sich um eine normale Ausgabe oder um eine Fehlermeldung handelt. Ich leite daher stderr zu stdout um. Das funktioniert.

Das Problem ist, dass ich den Statuscode des dpkgBefehls benötigen, nachdem beide Befehle beendet wurden. Nur um zu wissen, ob der dpkgJob seinen Job gemacht hat oder nicht. Nach diesen Befehlen kann ich leider nur den Statuscode des dialogBefehls erhalten ...

Weiß jemand, wie man den Statuscode des dpkgBefehls aus dem obigen Beispiel erhält ?

2

1 Antwort auf die Frage

2
chaos

Was Sie suchen, ist der Pipestatus :

dpkg -i ... | dialog ... echo $ # this contains the exit code of the dpkg command. 

Siehe das Beispiel:

$ false | true | false | true $ echo $ 1 0 1 0 
Genau das habe ich gesucht! Vielen Dank! WRz vor 10 Jahren 0