Как я могу заставить команду «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

  • Разница между «cd -» и «cd ~ -»
  • Измените конец нескольких похожих имен файлов
  • Метод командной строки для поиска повторяющихся опечаток с номерами строк
  • Список подкаталогов, содержащих определенное имя файла
  • Предотвращение изменения автоопределения bash из-за влияния перенаправления io (<и>)
  • Как переходить между процессами с именованными каналами?
  • Мониторинг процесса в Debian
  • Судо Су автоматический вход
  • Условное приглашение для меркуриальных
  • Как конвертировать скрипт init Ubuntu в сценарий инициализации Amazon Linux AMI?
  • Как удалить файл с именем «-C»
  • В чем разница между * и *. * При копировании?
  • 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.

    Linux и Unix - лучшая ОС в мире.