Как создать программу CLI с «приглашением оболочки»? - PullRequest
2 голосов
/ 09 сентября 2010

Я очень новичок в программировании.Следующая задача выглядит очень простой, но я не знаю, как это сделать.Спасибо, если кто-нибудь может дать мне некоторые рекомендации.

Я использую ОС Linux.Я хотел бы создать программу 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

Мне кажется, я знаю, как напечатать что-то на экране и получить информацию от пользователейно я обнаружил, что это выглядит очень непрофессионально.Я считаю, что есть лучший способ создать такую ​​программу.

Кто-нибудь может дать мне несколько советов, как создать такую ​​программу?Спасибо, если вы можете дать мне ссылки на любой пример программы.Благодаря.

Ответы [ 2 ]

4 голосов
/ 09 сентября 2010

Вы ищете что-то вроде следующего?

#!/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
3 голосов
/ 09 сентября 2010

Написание интерпретатора команд с помощью сценария оболочки звучит для меня несколько излишне, поскольку вы должны использовать интерпретатор команд (bash, csh, sh или что-то еще), чтобы сделать это.

ЭтоМожно настроить приглашение bash, если это то, что вы ищете.

Есть несколько библиотек C / C ++, которые вы могли бы использовать, чтобы помочь вам в создании собственного командного процессора / интерпретатора, включая fancy функций, таких как завершение вкладки.Вы должны взглянуть на это:

...