Команда Bash bind не работает корректно для интерактивных команд

Оказывается, в этой системе мне не хватало пакета sddm. Его установка позволила сразу выбрать sddm в качестве менеджера дисплея:

sudo apt-get install sddm
1
02.08.2019, 23:46
1 ответ

Команды, привязанные к клавише, предназначены для использования при редактировании строк. Они работают с терминалом в необработанном режиме, а bash ожидает обработки каждого нажатия клавиши. Большинство команд предполагается запускать с терминалом в режиме подготовленного , где терминал считывает по одной строке за раз и повторяет ввод.

Чтобы запустить команду, которая берет на себя взаимодействие с терминалом, временно переведите терминал в режим приготовления.

bind -x '"\C-p": _bash_stty_save=$(stty -g); stty sane; su dargod; stty $(_bash_stty_save)'

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

2
27.01.2020, 23:41

Теги

Похожие вопросы