Kirjoittaja Aihe: zenity-bugi?  (Luettu 127 kertaa)

AimoE

  • Käyttäjä
  • Viestejä: 2942
    • Profiili
zenity-bugi?
« : 12.02.26 - klo:17.30 »
Olin testaamassa Bash.scriptiä, jossa oli väliaikaista logiikkkaa. Ensin se kysyy käyttäjältä valintoja "zenity --list --check-list" -komennolla, ja sitten on tarkentava yes/no -kyssäri, jonka olen tehnyt tyyliin
Koodia: [Valitse]
printf "kyssäri"; read yn Yllättäen muuttuja "yn" oli tyhjä read-komennon jälkeen. Kun aikani olin lyönyt päätä ruutuun, kokeilin auttaisiko jos suorittaa zenity-komennon aliprosessissa, eli käärittynä ()-sulkeisiin. Se ratkaisi ongelman täysin. Tämän jälkeen nimesin muuttujan toiseksi, ja sekin auttoi.

Onkohan tämä fiitseri vai bugi?
« Viimeksi muokattu: 12.02.26 - klo:17.32 kirjoittanut AimoE »

kamara

  • Käyttäjä
  • Viestejä: 3148
    • Profiili
Vs: zenity-bugi?
« Vastaus #1 : 13.02.26 - klo:13.25 »
Mulla kyllä toimii odotetusti:
Koodia: [Valitse]
printf "kyssäri";read yn && echo $yn

Jos painaa y:tä ja sen jälkeen returnia niin tulostaa y:n.

Edit - näyttääkin tulostavan y:n joka tapauksessa. :P

Edit 2 - muokattu näyttäisi toimivan.

Edit 3 - Miltähän tuo toimimaton scriptisi näyttää ?

Edit 4 - Tämä ainakin näyttäisi toimivan ...
Koodia: [Valitse]
e=`zenity --list --checklist --title="Options"\
    --text="Select your features"\
    --column="Use"\
    --column="Feature"\
    TRUE A\
    False B\ ` && printf "kyssäri:" && read yn && echo $yn $e
« Viimeksi muokattu: 13.02.26 - klo:13.40 kirjoittanut kamara »

AimoE

  • Käyttäjä
  • Viestejä: 2942
    • Profiili
Vs: zenity-bugi?
« Vastaus #2 : tänään kello 08:16 »
Ongelmaversio ei ole enää tallessa. Keskeneräinen komentotiedosto oli tämän tyylinen, hyvin lyhyt ja yksinkertainen:

Koodia: [Valitse]
for arg in $(zenity \
--list --checklist \
--separator=' ' --print-column=2 \
--column='' --column='' false abc false xyz
    )
do
    printf "kyllä/ei-kysymys $arg? "
    read yn || break # Ctrl-D
    echo processing ${yn:-k} $arg
done

Mukana oli tietenkin zenityn --title ja --text ja erilainen arvoluettelo ja echo-rivin tilalla eri komento. Tämä yllä näkyvä toimii sellaisenaan, joten en tiedä mikä vika aiemmassa oli. Hämmentävää kun komentotiedosto on näin yksinkertainen.

Siitä tuli lopulta vieläkin yksinkertaisempi, kun korvasin zenity-komennon muuttujalla $@ ja siirsin arvoluettelon desktop-tiedoston Action-määrityksiin. Lopulliseen versioon tosin tarvittiin hieman lisäkoodia sitä varten, ettei telakasta käynnistetty pääteikkuna sulkeudu heti kun viimeinen valinta on prosessoitu. Keskeneräisessä versiossa sitäkään ei ollut silloin kun taistelin yn-kyssärin kanssa.

Greppasin yn-muuttujaa muista scripteistäni. Löysin vain yhden, jonka joskus otan sourcella mukaan. Tässä tapauksessa en sourcettanut sitä edes epäsuorasti.

Onpa mysteeri.