前言:
今天看官们对“c语言程序设计菜单界面”都比较关怀,咱们都想要了解一些“c语言程序设计菜单界面”的相关内容。那么小编在网络上搜集了一些有关“c语言程序设计菜单界面””的相关资讯,希望咱们能喜欢,我们快快来了解一下吧!shell如何制作一个交互式菜单?
有些人喜欢使用select语句,因为它很简单。如果您的需求非常简单,那么这可能已经足够了。如果您想要自定义外观和风格,您可以自己编写一个菜单。还有一种方式是使用dialog,但在这个页面上我们不会涉及。
使用select语句
PS3 是一个 Shell 变量,用于定义 select 命令的提示符。
它的全名是 PROMPT_SELECTOR,是一个字符串。
当使用 select 命令显示一个菜单给用户选择时,会打印这个提示字符串,等待用户输入选项。
例如:
PS3='Please select an option: 'select name in apple banana cherry; do echo "You have chosen $name" breakdone
这里 PS3 被定义为:
Please select an option:
然后 select 命令会提示:
1) apple 2) banana3) cherryPlease select an option:
等待用户输入选项编号,如 1。
用户输入无效选项时,也会再次展示上述提示:
Please select an option:
另外,在 PS3 提示符后可以使用特殊序列:
%n:选项编号%s:选项名称
例如:
PS3='Select from (%n) %s: 'select name ...
Then the prompt will be:
Select from (1) apple: Select from (2) banana:Select from (3) cherry:
所以通过设置 PS3 变量,可以定义 select 命令的自定义提示符。
它通常用于给用户友好的提示,提高程序的用户体验。
用shell来编写自己的菜单
只需使用echo和read语句创建一个循环即可,非常简单。让我们通过创建一个多级菜单应用程序来增加乐趣。
#!/bin/bashmain() { while true; do echo "== Make your selection:" echo "a) add" echo "s) subtract" echo "m) multiply" echo "q) quit" while true; do read -r -n1 -p "> " ch echo case $ch in a) add; break;; s) subtract; break;; m) multiply; break;; q) exit 0;; *) echo "Unrecognized command. Please try again.";; esac done done}add() { local a b while true; do echo "== Addition" echo "Enter first addend, or q to return to main menu." read -r -p "> " a [[ $a = q ]] && return echo "Enter second addend." read -r -p "> " b echo "$a + $b = $((a + b))" done}# subtract and multiply functions not shownmain
你可以根据自己的需要将其设计得简单或者复杂。您可以创建自己的输入函数来封装read,并持续等待用户输入一个符合语法的响应。您可以使用read -e命令允许用户使用readline编辑功能。一切都取决于您。
One More Thing
如果你想学习如何编写更加健壮和可靠的 Shell 脚本,减少生产环境中的错误和故障,那么关注我吧!我会分享 Shell 编程的最佳实践和建议,帮助你提高 Shell 脚本的鲁棒性和可维护性。如果你想深入了解 Shell 编程的实际应用和技巧,可以关注我的《Shell 脚本编程最佳实践》专栏,里面有我在一线互联网大厂的实际生产经验和最佳实践,帮助你高效完成各种自动化任务。
标签: #c语言程序设计菜单界面