Linux Mint 19/Mate: Wie kann man gtk Warnunge los werden?

Gast #6940350
Lesenswert?

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?
Gast #6940403
Lesenswert?

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.
Gast #6940719
Lesenswert?

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.
Gast #6940868
Lesenswert?

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?
#6941061
Lesenswert?

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
Gast #6941221
Lesenswert?

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…

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren