Мне нужно просмотреть ввод запроса пользователя в фоновом скрипте. (как в zsh, так и в bash).Как контролировать входной сигнал bash/zsh?
Например, если пользователь ввел
[3:[email protected]]> ssh [email protected] ls -alh
Мой фоновый процесс нуждается в строку «SSH [email protected] Ls -alh», прежде чем они нажмите клавишу ВВОД.
$ PS1 имеет строку приглашения, но не пользовательский ввод.
Возможно ли это?
Для фона общая цель состоит в том, чтобы принять частичный ввод пользователя и перевести оболочку на английский язык. Например, если бы я набрал ls -al
, мои $ PS1 или $ PS2 изменились бы, чтобы сказать «перечислить все файлы в длинном формате в текущем каталоге». Итак, если кто-то точно не помнил, если переадресация X11 с поддержкой -X или -x с помощью ssh
, они могут ввести ее и посмотреть, соответствует ли простой перевод на английский язык их ожиданиям.
Я хочу, чтобы это был zsh-плагин, или скрипт, который люди бросали в файлы rc
, поэтому не может быть ничего слишком крупного.
Возможно, вы используете ловушку 'DEBUG' в' bash', а 'zle', IIRC, имеет возможность редактировать командную строку до ее фактического выполнения. Это звучит немного как проблема [XY] (http://meta.stackexchange.com/questions/66377/what-is-the-xy-problem). Зачем вам нужен вход? – chepner
Похоже на очень подозрительное поведение –
Это звучит подозрительно, @ glenn-jackman, но я хочу создать сценарий, который будет транслировать команды оболочки на простой английский. Поэтому, когда вы в командной строке вводите обычный нормальный материал, например «tar -xvf», он покажет (и обновится в режиме реального времени по мере ввода дальше) «извлеките архив по _____, verbosely». У меня есть репо здесь с началом оболочки на английский перевод https://github.com/tennysonholloway/shell-to-english –