0

我正在使用 bash 创建一个小脚本,并YAD用于创建 GUI 窗口。所讨论的功能允许用户输入他/她想要搜索的软件的名称。我添加了if条件来检查用户是否输入了名称。如果提交的条目为空,脚本将弹出一条消息,说明该字段需要填写。

我上面描述的部分正在工作。我无法开始工作的部分是调用相同的YADGUI,以便用户可以输入软件名称而无需返回到主 GUI。

这是完整的功能。

ftNameRepo(){
    local text=""
    text+="Enter the name of the sofwate you want to search\n"
    text+="in the official repository."

    local nme=(
        yad --form --align-buttons --use-interp --title="Software Name" \
        --text="$text" --field="Name:" --button="Search!gtk-search!Click to search":0
    )
    local name="$("${nme[@]}" | cut -d '|' -f1)"

    if [[ name -ne "" ]]; then

        case "$?" in
            0) RunInTerminal pacman -Ss "$name" ;;
        esac

    else
        yad --image="error" --text="Name fiels cannot be empty" \
        --title="Empty Field" --text-align=left --width=300 \
        --button="Close!gtk-close!Click to close.":0

      #This part I'm trying to go back to the enter software screen. After clicking on ok button of the above message.
        case "$?" in
            0) $(nme) ;;
        esac
    fi
}
export -f sftNameRepo

这是if条件,

if [[ name -ne "" ]]; then

        case "$?" in
            0) RunInTerminal pacman -Ss "$name" ;;
        esac

    else
        yad --image="error" --text="Name fiels cannot be empty" \
        --title="Empty Field" --text-align=left --width=300 \
        --button="Close!gtk-close!Click to close.":0

      #This part I'm trying to go back to the enter software screen. After clicking on ok button of the above message.
        case "$?" in
            0) $(nme) ;;
        esac
    fi

这是我弹出消息说它是空的并且当用户单击“确定”按钮时我想要local nme执行或调用的部分。

尝试这样做(尝试了许多其他方法),

else
        yad --image="error" --text="Name fiels cannot be empty" \
        --title="Empty Field" --text-align=left --width=300 \
        --button="Close!gtk-close!Click to close.":0

      #This part I'm trying to go back to the enter software screen. After clicking on ok button of the above message.
        case "$?" in
            0) $(nme) ;;
        esac
4

0 回答 0