@kavabangaungava
Всякое бывало.

Как сделать для bash скрипта свой итерпритатор?

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

Можно ли для скрипта, создать отдельный интерпретатор а-ля:

sqlite>
# либо
Python 3.10.4 (main, Jun 29 2022, 12:14:53) [GCC 11.2.0] on linux
>>>
# или
MariaDB [(none)]>


Чтобы все действие происходило в оболочке, вроде:

myscript>
  • Вопрос задан
  • 130 просмотров
Решения вопроса 1
gedev
@gedev
сисадмин-энтузиаст
К тому что уже сказали, вот самая примитивная реализация:
#!/usr/bin/env bash

my_cmd_1() {
    echo "1st command output. Args: $*"
}

my_cmd_2() {
    echo "2nd command output. Args: $*"
}

echo 'Available commands: my_cmd_1, my_cmd_2, exit'
while true; do
    read -erp '>>> '
    $REPLY
    if [[ "$REPLY" == "exit" ]]; then
        break
    fi
done

~ $ ./cmd.sh 
Available commands: my_cmd_1, my_cmd_2, exit
>>> my_cmd_1 --option argument
1st command output. Args: --option argument
>>> exit

read --help
man readline
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
@bacon
по мне так проще разбить на кучу bash скриптов, да добавить их в PATH
Ответ написан
martin74ua
@martin74ua Куратор тега Linux
Linux administrator
ну кто вас может остановить??
Напишите скрипт, который будет выводить приглашение, ждать ввода от пользователя, анализировать что там ввели и выполнять нужную функцию. Можете на баше, можете на питоне, можете на чем угодно....
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы