zenif中的“取消”按钮在放置if..else语句后不起作用

时间:2019-01-16 09:27:55

标签: bash shell zenity

INPUTDISTANCE()
{
    #user input start here
    jarak=$(zenity --entry --title "Entry box distance" --text "Please, enter the distance." --width=500 --height=150 --cancel-label=Back); echo $jarak
    #if user press cancel/back button
    [ $? -eq 0 ] || GIVEUSEROPTION
    #make sure user make integer input
    if ! [[ "$jarak" =~ ^[0-9]+$ ]]
        then 
            exec >&2
            zenity --warning --text "Sorry integers only"
            INPUTDISTANCE
    fi
    INPUTTIME
}

我已经编写了这样的代码,但是我遇到了问题,每当我按下 取消/返回 按钮时,它会从if else语句中给出警告消息。但是我想要的是,如果我单击“取消/返回”按钮,它将返回另一种方法。

1 个答案:

答案 0 :(得分:0)

我知道了 所以这就是我解决的方法

jarak=$(zenity --entry --title "Entry box distance" --text "Please, enter the distance." --width=500 --height=150 --cancel-label=Back);
    #if user press cancel/back button
    [ $? -eq 0 ] || GIVEUSEROPTION
    echo $jarak

您只需要更改回声和位置参数之间的顺序