Как я могу заставить команду «bind» работать в sh shell

Как заставить следующий скрипт запускать, когда я использую sh shell:

#!/bin/bash bind '^[[3'=prefix-2 bind '^[[3~'=delete-char-forward bind '^[[1'=prefix-2 bind '^[[1~'=beginning-of-line bind '^[[4'=prefix-2 bind '^[[4~'=end-of-line 

связывать в sh

2 Solutions collect form web for “Как я могу заставить команду «bind» работать в sh shell”

bind – команда bash, а не команда sh. Если вы не используете bash, команда bind не будет доступна.

В зависимости от платформы sh может быть одной из нескольких оболочек. Все они обеспечивают общее ядро для сценариев. У обычного sh практически нет удобных функций для интерактивного использования; в частности, plain sh не имеет понятия привязки клавиш.

В некоторых системах sh is bash (который запускается в режиме совместимости при вызове sh ) и использует библиотеку readline для редакции командной строки и поддерживает привязки ключей через встроенный bind . Другие системы используют более компактные оболочки, такие как тире или ksh, которые быстрее выполняют сценарии. Если вы хотите порядочный интерфейс командной строки, не вызывайте sh .

Обратите внимание, что скрипт, который вы написали, не работает при запуске (кроме того, чтобы печатать предупреждения о том, что команда bind бессмысленна в неинтерактивной оболочке). Файл, содержащий только определения привязки ключей, не может быть полезным автономным исполняемым файлом, а всего лишь фрагментом оболочки. Таким образом, shebang наверху не пригодится.

bind не доступен в sh . Измените ~/.inputrc если вы хотите изменить привязки readline.

  • От имени файла получите имена точек монтирования, устройства, LV, VG, PV
  • Как я могу выбрать 3 символьных файла в Bash?
  • Что произойдет, если вы отредактируете скрипт во время выполнения?
  • Передача именованных аргументов в виде массива в сценарии оболочки
  • Удалите несколько возможных суффиксов
  • Ubuntu меняет оболочку на меня
  • Запустите еще одну команду перед запуском команды, которую пользователь хочет запустить.
  • Как получить счет всех расширений файлов на жестком диске с помощью терминала gnu + linux?
  • Как перевести время из часового пояса в Сиднейский часовой пояс с помощью оболочки korn?
  • Синтаксическая ошибка синтаксиса переменной в оболочке
  • Синтаксис командной строки для перенаправления аргументов?
  • Linux и Unix - лучшая ОС в мире.