我试图学习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] 举报,一经查实,本站将立刻删除。