2010-09-09 87 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 
相關問題