назначить буквы для перехода вперед и назад в bash

Опция -sдля встроенной -утилиты readне является стандартной опцией и вряд ли будет реализована в sh. Точно так же параметр -pдля выдачи пользовательского приглашения вряд ли будет реализован универсальным sh.

Вместо этого запустите свой скрипт с bash, чей readподдерживает -sдля чтения с терминала без повторения введенного -в символах (, а также-p).Самый простой способ сделать это — изменить строку#!-так, чтобы она указывала на исполняемый файл bashв вашей системе.

В оболочке, отличной от -bash, вы можете получить аналогичный эффект с помощью

printf 'Enter password: ' >&2

stty -echo
read password
stty echo
0
04.04.2021, 20:59
1 ответ

В оболочке tcshbindkey -vустанавливает режим редактирования командной строки в «режим Vi» (, а не в «режим Emacs» ).

В оболочке bashтот же эффект можно получить с помощью set -o vi.

Перевод редактора командной строки в «режим Vi» приводит к тому, что он ведет себя немного так, как если бы вы использовали редактор Vi, гдеw(в «обычном режиме» после нажатия Esc)переходит к первому символ следующего слова, bпереход к первому символу текущего или предыдущего слова, конец eпереход к следующему концу -слова -и т. д.

Вы также можете переключить библиотеку Readline (, которую bashbash использует для редактирования командной строки ), в «режим Vi», добавив параметр set editing-mode viв файл ~/.inputrc. Это дополнительно повлияет на любую другую программу , использующую библиотеку Readline для редактирования командной строки (, например, на некоторые клиенты базы данных в интерактивном режиме ).

4
28.04.2021, 22:54

Теги

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