gpt4 book ai didi

linux - Bash 编程无限循环

转载 作者:太空狗 更新时间:2023-10-29 12:31:19 25 4
gpt4 key购买 nike

我是 bash 的新手,我正在尝试从在线导师那里学习它。当我在我的计算机(windows)上用 xserver 尝试下面的代码时,我得到了

1) Hello
2) Quit
#?
bad option
#?

这会无限地持续下去,这是我不应该得到的。我使用了./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

有人请帮助。

提前致谢

最佳答案

select 命令的man 页面清楚地指出了错误的位置

选择名称 [in word] ;做 list ;完成

后面的单词列表被展开,生成一个列表 项目。扩展字集印在标准上 错误,每个前面都有一个数字。如果省略 in 字, 打印位置参数(见下面的参数)。 然后显示 PS3 提示符,并从 stand- 硬输入。如果该行包含对应于 显示的单词之一,则 name 的值设置为 那个词。如果该行为空,则显示文字和提示 又玩了如果读取到 EOF,则命令完成。任何其他 值读取导致名称设置为空。

选择加入 $OPTIONS;做

这里的OPTIONS代表语法中的。现在当 OPTIONS 展开时,列表 {Hello, Quit} 被获取作为输出打印,前面有一个数字,就像输出的早期部分一样。

1) Hello
2) Quit

然后 PS3 变量,在您的系统中它是 #? 被显示并等待用户输入。当您按 1 name(在语法中),即在您的程序中 opt 将采用值 Hello。它与第一个 if 匹配,它将输出打印为 Hello world 这将一直持续到遇到 EOF

在程序中,Quit 中的exit 在按下 2 时导致退出。

预期输出:

1) Hello
2) Quit
#? 1 <= my input
Hello World
#? 2 <= my input
done

关于linux - Bash 编程无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26212209/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com