我在bash上制作了一个脚本。
#!/bin/bash
zen(){
mark=$(zenity --scale \
--text 'FREQUENCY' \
--value=$la \
--min-value=0\
--max-value=5000 \
--step=1)
}
la=500
echo "Script for shim. Regulary frequency"
zen
while [ true ]
do
case $? in
0) echo $mark
la=$mark
#zenity --notification --window-icon="info" --text="Thank you!" --timeout=1
zen
;;
1)
# exit 1
# sl -e || break
# break
# return 1
;;
esac
done
echo "thanks for using!"
它可以正常工作,但不包括出口点。#代表我尝试过的选项,并且每个选项都不允许正确退出此脚本,而不是“感谢使用!” 或者我在终端中什么也没有:
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
^XThis option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
This option is not available. Please see --help for all possible usages.
.........................................
当我尝试退出脚本时,似乎是zenity问题。我查了一下这个错误,唯一的想法就是升级zenity,虽然我已经做到了,但它并没有给我带来什么新的...
因此,我该如何解决它并正确打破此脚本呢?
我的操作系统是Ubuntu Server 16.04
编辑
通过我的脚本,我希望实现从禅宗到用户单击“取消”的那一刻重复出现的问题。
$?
是最后运行的命令的退出状态。在您的情况下,这就是[
命令(您可以用来测试true
字符串是否为非空作为while
循环的条件)。
您几乎不需要$?
显式使用。做就是了
la=500
while
mark=$(zenity --scale \
--text 'FREQUENCY' \
--value="$la" \
--min-value=0 \
--max-value=5000 \
--step=1)
do
echo "$mark"
la=$mark
done
或者简单地:
mark=500
while
mark=$(zenity --scale \
--text 'FREQUENCY' \
--value="$mark" \
--min-value=0 \
--max-value=5000 \
--step=1)
do
echo "$mark"
done
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句