Ich habe ein kleines GUI mit yad geschrieben – funktioniert problemlos, aber gtk wirft jedesmal eine Warnung aus, wenn yad gestartet wird und zerfetzt die Skriptausgabe im Terminal: gtk_box_gadget_distribute: assertion 'size >= 0' failed in GtkScrollbar stderr von yad auf eine Datei umleiten bringt leider nichts – die Meldung kommt nicht von yad, sondern von gtk. Wie kann man diesen Unsinn abstellen?
Versuche mal mit den Parameter -DNOT_X_WINDOWS zu compilieren.
Ich compiliere nichts. yad ist ein fork von zenity und im Mint-Repo vorhanden. Ich habe lediglich ein Shellscript gebaut, das yad aufruft.
Dann halt yad neu compilieren, das ja scheinbar gtk verwendet.
Taucher schrieb: > aber gtk wirft jedesmal eine Warnung aus, wenn yad gestartet wird und > zerfetzt die Skriptausgabe im Terminal: std. error umleiten ~ $yad-skript 2>/dev/null https://askubuntu.com/questions/1144080
buntkuh schrieb: > std. error umleiten ~ $yad-skript 2>/dev/null OK, das tut es… Da wird es wohl das Einfachste sein, entweder ein Wrapper-Skript darum zu bauen, oder das Skript sich selbst mit dem Redirect aufrufen zu lassen. yad zu compilieren, ist mir nicht gelungen – das scheitert auf Mint 19 schon beim configure daran, dass es keine passende gtk-Version findet. Wie sich das beheben lässt, habe ich leider nicht herausgefunden.
Taucher schrieb: > yad zu compilieren, ist mir nicht gelungen – Wenn das mit der error Umleitung funktioniert, brauchst Du das ja auch nicht mehr. Taucher schrieb: > Wie sich das beheben lässt, habe ich leider nicht herausgefunden Vermutlich fehlen die sources für yad bzw. gtk.
:
Bearbeitet durch User
Taucher schrieb: > buntkuh schrieb: >> std. error umleiten ~ $yad-skript 2>/dev/null > > OK, das tut es… Da wird es wohl das Einfachste sein, entweder ein > Wrapper-Skript darum zu bauen, oder das Skript sich selbst mit dem > Redirect aufrufen zu lassen. > oder im skript, probiere mal so #!/bin/bash ... exec 2>/dev/null yad --text ... --- man bash: Note that the exec builtin command can make redirections take effect in the current shell.
buntkuh schrieb: > exec 2>/dev/null Das funktioniert – vielen Dank für den Tipp. Ich hatte den Ehrgeiz, diese Skripte rein mit den Möglichkeiten der bash zu schreiben. Das war keine gute Idee: das Zeug ist schier unlesbar, weil die Syntax ziemlich unstrukturiert ist. Pearl ist schon kein Vergnügen, aber die bash toppt das noch um mindestens eine Größenordnung… Auf die Idee mit dem exec muss man erst mal kommen – wie bekommt man das hin, ohne sich tief in die bash-Quellen einzugraben?
Taucher schrieb: > wie bekommt man das > hin, ohne sich tief in die bash-Quellen einzugraben? man bash Bis Abschnitt REDIRECTION runter scrollen (oder suchen). Dort gibt es eine "Randnotiz": Note that the exec builtin command can make redirections take effect in the current shell. Dann nach "exec " suchen (einschließlich Blank). Dort ist es dann beschrieben. Hab es aber selber nicht gewusst; auch von mir: danke für den Tipp! Ach ja, nochwas, Warnhinweis auf der ubuntuusers Seite gefunden: https://wiki.ubuntuusers.de/yad/#Stoerende-Warnmeldung
:
Bearbeitet durch User
Gerhard Z. schrieb: > Note that the exec builtin command can make redirections take effect in > the current shell. > > Dann nach "exec " suchen (einschließlich Blank). Dort ist es dann > beschrieben. > Hab es aber selber nicht gewusst; Kann es sein, dass du mich für ein bisschen doof hälst? > Ach ja, nochwas, Warnhinweis auf der ubuntuusers Seite gefunden: > https://wiki.ubuntuusers.de/yad/#Stoerende-Warnmeldung Das habe ich ausprobiert – funktioniert nicht, wenn man die Parameterliste für yad dynamisch aufbaut. Als String klappt das nicht, nur wenn man die Parameter in einem Array zusammenbaut und anschließend mit $(array[@]) ausführt, warum? Keine Ahnung, das sind das die Mysterien der Bash…
Taucher schrieb: > Kann es sein, dass du mich für ein bisschen doof hälst? Macht es den Eindruck, war nicht gewollt. Aber stell dir jemanden vor, der den Thread hilfreich findet, aber das erste Mal die man-pages aufruft. Der hat sicher Schwierigkeiten, in der überaus langen man-page die entsprechenden Infos zu finden.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.