所以一个非常直截了当的问题,在zenity有两个按钮在每页,ok和cancel。使用我的脚本,我设法将zenity代码分配给一个变量,在这个变量中,我可以为我的日历选择一个日期。我想使用取消按钮为我的议程,所以我重新命名,但我不知道如何使它工作!谢谢
#!/bin/bash
calendarinput=$(zenity --calendar \
--title "Scheduler" \
--text "Pick a date" \
--ok-label "Done" --cancel-label "Agenda" \
--date-format "%A %d/%m/%y")
agenda+="$calendarinput"
unset calendarinput
calendarinput="Done"
if [ "$calendarinput"="Done" ];then
remind=$(zenity --entry)
agenda+="$remind\n"
fi
zenity --info \
--text "$agenda"这是我的script.There中仅有的一个函数,是这个菜单之前的另一个列表菜单。
发布于 2021-01-21 07:28:36
您可以从特殊参数$?中的按钮中找到返回代码,该参数包含上次执行的命令的退出代码。它可以是0、1或5,这取决于用户是按OK、Cancel还是timeout。
#!/bin/bash
calendarinput=$(zenity --calendar \
--title "Scheduler" \
--text "Pick a date" \
--ok-label "Done" --cancel-label "Agenda" \
--date-format "%A %d/%m/%y")
ret=$?
if ((ret==0)); then
echo "Done"
else
echo "Agenda"
fiif语句中的表达式需要用空格分隔:
if [ "$calendarinput" = "Done" ]; then(它也总是计算为真,这使得它有点不必要)。
发布于 2022-06-24 13:19:58
使用case esac而不是if设置
zenity --whatever
case $? in
0) whatever.script #this is pressing ok
;;
1) $1 # this is pressing cancel
;;
*) $1 #this is closing window etc $1 will kill process
;;
esachttps://askubuntu.com/questions/1309740
复制相似问题