2

私はプログラミングにとても慣れていません。次のタスクは非常に単純に見えますが、その方法がわかりません。誰かが私にいくつかのガイダンスを与えることができれば感謝します。

LinuxOSを使用しています。CLIプログラムを作成し、ユーザーにシェル端末で実行させたいと思います。このプログラムを作成するためにBashシェルスクリプトを使用する予定ですが、C++またはPerlでも問題ありません。CLIプログラムは、ユーザーからのコマンドを受け入れて実行し、オプションで結果の概要を画面に表示します。

CLIプログラムの実行中は、Bashシェルプロンプトと同じように、シェルターミナルの左側に常に「シェルプロンプト」が表示されるようにしたいと思います。プロンプトは、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

画面に何かを印刷してユーザーからの入力を得る方法は知っていると思いますが、それは非常に専門的ではないように見えます。この種のプログラムを作成するためのより良い方法があると思います。

この種のプログラムを作成する方法を教えてもらえますか?サンプルプログラムへのリンクを教えていただければ幸いです。ありがとう。

4

2 に答える 2

5

次のようなものをお探しですか?

#!/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
于 2010-09-09T03:58:34.753 に答える
3

シェルスクリプトを使用してコマンドインタープリターを作成するには、コマンドインタープリター(bash、csh、shなど)を使用する必要があるため、少し冗長に聞こえます。

それがあなたが探しているものであるならば、あなたのbashプロンプトをカスタマイズすることは可能です。

タブ補完などの高度な機能を含む、独自のコマンドプロセッサ/インタプリタの構築を支援するために使用できるC /C++ライブラリがいくつかあります。これらを確認する必要があります。

于 2010-09-09T03:22:27.913 に答える