2010-09-09 92 views
1

我在编程方面很新颖。以下任务看起来很简单,但我不知道该怎么做。感谢有人能给我一些指导。如何使用“shell提示符”创建CLI程序?

我正在使用Linux操作系统。我想创建一个CLI程序并让用户在shell终端中运行它。我打算使用Bash shell脚本来创建这个程序,但是C++或Perl也应该可以。 CLI程序将接受来自用户的命令,执行它,然后可以选择在屏幕上显示结果摘要。

当CLI程序运行时,我想让它总是在shell终端的左侧显示一个“shell提示符”,就像Bash shell提示符一样。提示符表示CLI程序正在等待用户输入命令并按回车键。

[[email protected] user]$ # This is Bash shell 
[[email protected] user]$./CliApp.sh 
CliApp > # The CLI program is running, user can type in command here 
CliApp > exit 
[[email protected] user]$ # Now the user has returned to the Bash shell 

我想我知道如何在屏幕上打印的东西,从用户获得输入,但我发现,它看起来非常专业。我相信有更好的方式来创建这种程序。

任何人都可以给我一些指导如何创建这种程序?感谢您能否给我提供任何示例程序的链接。谢谢。

+0

显示您到目前为止的内容并提出有关它的具体问题。 – 2010-09-09 02:58:16

+1

你认为什么,你认为看起来不专业?你提供的例子看起来就像从shell执行命令一样。你有没有不专业的组件的例子? – atk 2010-09-09 03:12:41

+0

对不起,我感到困惑。我想为我的程序创建一个shell提示符。提示符应记住用户当前所在的“环境”。示例是Cisco IOS软件。当用户第一次登录时,提示是“Router>”。用户键入密码后,它变成“路由器#”。如果用户输入命令“配置终端”。它会变成“Router(config)#”。如果用户想配置一个接口,提示符将变为“Router(config-if)#”。 “环境”将决定用户可以使用哪些命令。某些命令只能在特定环境中执行。 – BGN 2010-09-09 03:26:28

回答

3

通过shell脚本编写命令解释程序听起来有点多余,因为您必须使用命令解释程序(bash,csh,sh或其他)才能做到这一点。

如果这就是你想要的,可以定制你的bash提示符。

您可以使用一些C/C++库来帮助您构建自己的命令处理器/解释器,其中包括幻想功能,如选项卡完成。你应该看看这些:

+0

这里的“自定义bash”可能意味着简单地创建函数(或将脚本放在PATH上),以便在应用程序中执行所需的操作,但直接在bash中执行。(例如,我每天使用bash/zsh,但在'PATH'上有一堆额外的命令可用[我自己的库](https://github.com/joeytwiddle/jsh)。) – joeytwiddle 2014-02-13 18:28:20

4

您是否在寻找沿着以下线的东西?

#!/bin/bash                          
input="" 
while [ "$input" != "exit" ] 
do 
    echo -n "cliApp($mode) > " && read input 
    if [ "$input" = "config" ] 
    then 
     mode="config" 
    elif [ "$input" = "up" ] 
    then 
     mode="" 
    elif [ "$input" = "exit" ] 
    then 
    break 
    else 
     if [ "$mode" = "config" ] 
     then 
      if [ "$input" = "list" ] 
      then 
       echo "ABCD" 
      else 
       echo "Invalid" 
      fi 
     else 
      echo "Invalid" 
     fi 
    fi 
done 

exit 
相关问题