(Пожалуйста, помогите мне откорректировать заголовок и теги.)
Когда я запускаю connmanctl
, я получаю другое приглашение,
enrico:~$ connmanctl
connmanctl>
и доступны различные команды, например services
, technologies
, connect
, ...
Я бы хотел знать, как эта штука работает.
Я знаю, что в общем случае изменение приглашения может быть простовопрос об изменении переменной PS1
. Однако одна только эта вещь (читай "команда connmanctl
изменяет PS1
и возвращает) не будет иметь никакого влияния на функциональность командной строки (я все равно буду в том же процессе bash
).
Действительно, тот факт, что доступные команды изменены, выглядит для меня как доказательство того, что connmanctl
работает все время, когда приглашение connmanctl>
, и что при запуске connmanctl
, while
цикл вводится с оператором read
, за которым следует набор команд, обрабатывающих ввод.
В этом последнем сценарии, который я представляю, нет необходимости даже изменять PS1
, так какconnmanctl>
строка может быть просто получена echo -n "connmanctl> "
.
Причина этого любопытства в том, что я пытаюсь написать оболочку для connmanctl
. Я уже написал ее, и она работает какпредполагалось, за исключением того, что я не знаю, как правильно настроить функцию автозаполнения, и я думаю, что для этого мне сначала нужно понять, как правильно написать сценарий интерактивной оболочки.