【发布时间】:2011-04-10 01:26:44
【问题描述】:
我是编程新手。以下任务看起来很简单,但我不知道该怎么做。如果有人可以给我一些指导,不胜感激。
我正在使用 Linux 操作系统。我想创建一个 CLI 程序并让用户在 shell 终端中运行它。我打算使用 Bash shell 脚本来创建这个程序,但 C++ 或 Perl 也应该没问题。 CLI 程序将接受来自用户的命令,执行它,然后选择性地在屏幕上显示结果摘要。
当 CLI 程序运行时,我想让它总是在 shell 终端的左侧显示一个“shell 提示符”,就像 Bash shell 提示符一样。提示表示 CLI 程序正在等待用户输入命令并按回车键。
[AAA@Bash user]$ # This is Bash shell
[AAA@Bash user]$./CliApp.sh
CliApp > # The CLI program is running, user can type in command here
CliApp > exit
[AAA@Bash user]$ # Now the user has returned to the Bash shell
我想我知道如何在屏幕上打印一些东西并从用户那里获得输入,但我发现它看起来很不专业。我相信有更好的方法来创建这种程序。
谁能给我一些指导如何创建这种程序?感谢您是否可以给我任何示例程序的链接。谢谢。
【问题讨论】:
-
展示你目前拥有的东西并提出具体问题。
-
究竟是什么,您认为看起来不专业吗?您提供的示例看起来就像从 shell 执行命令一样。你有不专业的组件的例子吗?
-
很抱歉给您带来了困惑。我想为我的程序创建一个 shell 提示符。提示应该记住用户当前所在的“环境”。示例是 Cisco IOS 软件。用户首次登录时,提示符为“Router>”。用户输入密码后,它变成“Router#”。如果用户输入命令“配置终端”。它将变成“Router(config)#”。如果用户想配置一个接口,提示符会变成“Router(config-if)#”。 “环境”将决定用户可以使用哪些命令。某些命令只能在某些环境中执行。
-
只是为了帮助您进行研究,这种接口也可以称为 REPL(Read Eval Print Loop),我怀疑它可能是 CLI 的子类。
-
如果您使用 C 编写应用程序,那么您可以使用 readline 库来获取典型的用户历史记录和行编辑功能。不确定bash是否存在类似的东西......
标签: bash shell command-line prompt