![]() |
1
1372
在shell提示下获取用户输入的最简单和最广泛可用的方法是
史蒂文·赫维格指出的另一种方法是巴什的
用
另外,请查看 excellent answer F. Hauri。 |
![]() |
2
426
一个普通问题至少有五个答案。取决于 如果你想要
1。POSIX通用解决方案
你可以用
(感谢 Adam Katz's comment :将上面的测试替换为更便携且避免使用一个分叉的测试:) POSIX,但单键功能但是如果你不想让用户点击 返回 ,你可以写: ( 编辑: 正如@jonathanlefler所说, 节约 Stty的配置可能比简单地强迫他们 理智的 )
注: 这是在 sh , 猛击 , ksh , dash 和 busybox ! 相同,但明确等待 Y 或 n :
使用专用工具
有许多工具是用
根据您的系统,您可能需要更换
哪里
2。bash特定的解决方案基本的 在线 方法
我更喜欢使用
在线 具有 单键 特征
在bash下,我们可以为
抨击之下,
一些窍门 专用工具
更复杂的对话框,不仅仅是简单的
进度条:
小演示:
更多样本?看一看 Using whiptail for choosing USB device 和 USB removable storage selector: USBKeyChooser 5。使用readline的历史记录例子:
这将创建一个文件
|
![]() |
3
340
|
![]() |
4
145
您可以使用内置的
read
命令;使用
从bash4开始,现在可以使用
(但记住使用“readline”选项
如果需要“是/否”逻辑,可以这样做:
|
![]() |
5
100
巴什有 select 为此目的。
|
![]() |
6
54
|
![]() |
7
31
以下是我整理的:
我是个初学者,所以拿着这个加一点盐,但它似乎有效。 |
![]() |
8
28
|
![]() |
9
25
你想要:
片断
解释
超时=>默认答案为否
|
![]() |
10
21
用最少的行数实现这一点的最简单方法如下:
这个
|
![]() |
11
17
此解决方案读取单个字符并在Yes响应上调用函数。
|
![]() |
12
17
使用
然后所有你需要的东西 |
![]() |
13
12
这个
如果要使用建议作为输入:
|
![]() |
14
9
很抱歉在这么旧的帖子上发帖。几周前,我遇到了一个类似的问题,在我的情况下,我需要一个解决方案,它也适用于在线安装程序脚本,例如:
使用
希望这能帮助别人。 |
![]() |
15
8
要获得像inputbox这样的漂亮的ncurse,请使用命令 对话 这样地:
默认情况下,至少在SUSE Linux上安装对话框包。 |
![]() |
16
6
仅限单按键这里有一个较长但可重用的模块化方法:
按Enter时默认为“否”
请注意
还要注意的是
重新提示直到给出有效响应:
按Enter时默认为“是”
请注意
上面,我刚按下Enter,命令就运行了。
无默认
进入
-要求
|
![]() |
17
4
多选版本:
例子:
它将设置
|
![]() |
18
4
受@mark和@myrddin答案的启发,我创建了一个通用提示的函数
这样使用:
|
![]() |
19
4
我注意到,没有人发布一个答案,显示了这样简单的用户输入的多行回音菜单,所以下面是我的步骤:
这个方法被贴出来,希望有人能发现它有用,节省时间。 |
![]() |
20
3
我建议你 use dialog …
它简单易用,还有一个GNOME版本叫做gDialog,它使用完全相同的参数,但在X上显示了它的GUI样式。 |
![]() |
21
3
一个简单的方法是
我对此比较喜欢xargs的行为,因为它像其他交互的unix命令一样在提示后立即执行每个命令,而不是收集在末尾运行的yes。(您可以在完成所需的任务后按ctrl-c。) 例如。,
|
![]() |
22
3
更一般的是:
|
![]() |
23
3
您可以使用默认值
|
![]() |
24
2
|
![]() |
25
2
作为单行命令的朋友,我使用了以下命令:
写的很长,它的工作原理如下:
|
![]() |
26
2
我已经用过了
使用的示例
|
![]() |
27
1
回应他人: 您不需要在bash4中指定case,只需使用“,,”将var变为小写。另外,我非常不喜欢把代码放在读取块内,得到结果并在读取块IMO之外处理它。还包括退出IMO的“q”。最后,为什么键入“yes”只使用-n1并按下y。 示例:用户可以按Y/N和Q退出。
|
![]() |
28
0
是/否/取消功能
用法
用干净的用户输入确认功能
用法
|
![]() |
md.jamal · 如何确保telnet命令是否成功 7 年前 |
![]() |
user3742796 · 如何在键之间均匀分布总值数 7 年前 |
![]() |
VaTo · 用于检查是否可以访问多个服务器的脚本 7 年前 |
![]() |
as7951 · Awk脚本根据条件提供另一列中某些列的总和 7 年前 |
![]() |
JBaba · 如何在Unix中读取嵌套循环中的两个文件 7 年前 |
![]() |
Ajeetkumar · ksh-检查字符串是否有模式 7 年前 |