Bash编程无限循环
我是bash的新手,我正在尝试从在线辅导者那里学习。 当我与一个Xserver的我越来越Bash编程无限循环
1) Hello
2) Quit
#?
bad option
#?
,这继续无限,这我不应该让试图在我的电脑(Windows)在下面的代码。我用./programname.txt
运行该文件 和我的代码是
#!/bin/bash
OPTIONS="Hello Quit"
select opt in $OPTIONS; do
if [ "$opt" = "Quit" ]; then
echo done
exit
elif [ "$opt" = "Hello" ]; then
echo Hello World
else
clear
echo bad option
fi
done
有人请帮助。
在此先感谢
的man
页select
命令的明确规定,你在错误的
select name [ in word ] ; do list ; done
以下单词的列表展开,产生的 项的列表。扩展词的集合打印在标准的 错误上,每个错误前面都有一个数字。如果省略了输入字,则会打印位置参数(参见下面的参数) 。 然后显示PS3提示,并从stan- dard输入中读取一行。如果该行包含一个对应于 显示的单词之一的数字,则该单词的名称值设置为 。如果该行为空,则会再次播放单词和提示。如果读取EOF,则命令完成。读取任何其他 值都会将名称设置为空。
select opt in $OPTIONS; do
这里OPTIONS
代表word
中的语法。现在,当OPTIONS
展开时,列表{Hello, Quit}
已打印为输出,并以数字结尾,如输出的前面部分所示。
1) Hello
2) Quit
然后PS3
变量,在您的系统是#?
显示并等待用户输入。 select
预计输入1
或2
当您按1
name
(在语法),即在您的程序opt
将取值Hello
。它与第一个输出if
匹配,它将输出打印为Hello world
,直到遇到EOF
。
在程序中,中的exit
在按下2时会导致退出。
预期输出:
1) Hello
2) Quit
#? 1 <= my input
Hello World
#? 2 <= my input
done
这并不能解释什么是错误的,很难遵循 – 2014-10-06 09:26:32
@ nu11pO1n73R非常感谢我了解该程序。感谢您的帮助 – Sree 2014-10-06 11:26:16
@PeterR程序中没有任何错误。问题出在提供的输入,当程序是朗姆酒 – nu11p01n73R 2014-10-06 11:27:33
你应该(UN)格式化你的问题 – keyser 2014-10-06 08:14:00
这对我的作品。 – choroba 2014-10-06 08:22:20
当你得到这个不好的选择时,你准确输入什么? – RaFD 2014-10-06 08:25:19