Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash Zenity文件选择显示_Bash_Shell_Dialog_Debian_Zenity - Fatal编程技术网

Bash Zenity文件选择显示

Bash Zenity文件选择显示,bash,shell,dialog,debian,zenity,Bash,Shell,Dialog,Debian,Zenity,所以我尝试在zenity中执行删除功能。我设法让用户输入他想要的路径,然后我想显示其中存在的所有文件。我发现了如何做到这一点,我知道这是可行的,但没有zenity。下一个窗口(文件选择)没有弹出,我的程序返回菜单。谢谢这是我的代码。谢谢你的帮助和时间 #!/bin/bash function Ddate() { zenity --info \ --title "Date and Time" \ --text "Today is $(date

所以我尝试在zenity中执行删除功能。我设法让用户输入他想要的路径,然后我想显示其中存在的所有文件。我发现了如何做到这一点,我知道这是可行的,但没有zenity。下一个窗口(文件选择)没有弹出,我的程序返回菜单。谢谢这是我的代码。谢谢你的帮助和时间

#!/bin/bash

function Ddate()
{
    zenity --info \
    --title "Date and Time" \
    --text "Today is $(date)"
}

function Dcalendar()
{
    zenity --forms \
    --title "Scheduler" \
    --text "Pick a date" \
    --add-calendar "Calendar" \
    --add-entry "Reminder"
}

function Ddelete()
{   
    directory=$(zenity --entry \
    --text "Enter a path" \
    --title "Delete" )
    if [ -z "$directory" ];then
    directory=$ pwd
    else
        if [ -d "$directory" ];then
            zenity --file-selection --filename=$(directory)
        fi 
    fi

}

while true;
do
choice="$(zenity --height 275 --width 450 \
--list \
--title="" \
--column="Function" --column="Description" \
    Date 'Display the actual date and time.' \
    Calendar 'Display an interactive calendar.' \
    Delete 'Let you delete a file.' \
    Exit 'To quit this script.')"

case $choice in
    Date) Ddate;;
    Calendar) Dcalendar;;
    Delete) Ddelete;;
    Exit) break;;

esac

done

为了解决我的问题,我理解美元背后的含义?转义码。在每个窗口$?控制“确定”和“取消”按钮,分别取值0和1。 在我的程序中,我清除了$?首先,由于前面的窗口,可以在中设置一个值,并将变量ret设置为$?这意味着,如果有人按ok或cancel,它将继续进入下一个窗口或返回根窗口

function Ddelete()
{   
    directory=$(zenity --entry \
    --text "Enter a path" \
    --title "Delete" )
    if [ -z "$directory" ];then
    directory=$ pwd
    else
        if [ -d "$directory" ];then
            clear $?
            Spath=$(zenity --file-selection --filename=$(directory))
            ret=$?
        fi 
    fi

}