微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

bashselect循环不起作用

我试图学习bash。 在一些教程中,我find了select循环。 但是它在我的MAC OS或者Linux上都不起作用。 我的代码是这样的:

#!/bin/bash names="Kyle Cartman Stan Quit" ps3="Select character: " select name in $names do echo "name="$name done

我使用./test.sh来调用这个程序,结果如下所示:

1) Kyle 2) Cartman 3) Stan 4) Quit Select character: Kyle name= Select character: Stan name= Select character:

它似乎无法检测到我的input。 任何人都可以帮我吗?

标准input可用性(竞争条件?)

我如何分解在bash中极长的string文字

如何写stdout文件的颜色?

如何在awk中使用多个分隔符?

如何从一个简单的CGI python服务器运行一个shell脚本?

有没有办法看到为su密码input的字符

我如何创build一个通用的shell命令退出或从脚本执行或来源返回?

从外部禁用Linux程序的信号

尝试将两个parameter passing给调用的脚本进行模式search

如果一个工作停止运行,让Upstart向我发送电子邮件通知的最佳方式是什么?

代码是好的; 它的用法错误的:允许的条目是3或4 ,而不是Kyle , Cartman , Stan或Quit 。 (如果用户不得不输入全名,那么用户输入数字有什么意义?)

空字符串告诉你用户输入的东西无效。 观察,相比之下:

1) Kyle 2) Cartman 3) Stan 4) Quit Select character: 1 name=Kyle Select character: 3 name=Stan

顺便说一下 – 它应该是:

# SAFE: quotes everything echo "name=$name"

…要么…

# SAFE: Quotes only the expansion echo name="$name"

…不…

# BUGGY: Runs expansion unquoted; can remove characters in IFS,expand globs,etc echo "name="$name

看你应该什么时候报价? 在Wooledge维基上,或习惯通过http://shellcheck.net/运行你的代码,这会发现这种性质的问题。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐