Как расширить псевдонимы inline в bash?

Есть ли способ расширить псевдонимы inline в bash?

$bash>alias ll='ls -l ' $bash>ll<tab> $bash>ls -l 

3 Solutions collect form web for “Как расширить псевдонимы inline в bash?”

Вы можете нажать Ctrl- Alt- e, чтобы выполнить функцию readline function shell-expand-line которая будет выполнять псевдонимы, историю и расширения слов. Обратите внимание, что на некоторых клавиатурах Meta не Alt . Вам может потребоваться нажать Esc, затем Ctrl- e

Функции alias-expand-line и history-and-alias-expand-line по умолчанию не связаны, но вы можете связать их, добавив строки, похожие на следующие, в ваш файл ~/.inputrc .

 "\e\Cl": alias-expand-line 

Который заставит Ctrl- Alt- l (нижний регистр «ell») выполнить только расширение псевдонима.

На самом деле это может быть гораздо более простой способ сделать то, что вы пытаетесь (версия bash > = 4.2.29):

 shopt -s direxpand shopt -s expand_aliases 

shopt страница shopt : https://www.gnu.org/software/bash/manual/html_node/The-Shopt-Builtin.html

Это не работает. Но я предполагаю / надеюсь, что что-то подобное можно сделать, чтобы делать то, что вы хотите сделать. Вам придется использовать свой собственный скрипт завершения. Вот как вы это делаете:

 _ll() { COMPREPLY=(ls -l) #The next line does not work. I just hope there were a way to replace that word COMP_WORDS[COMP_CWORD-1]="ls -l" } complete -F _ll ll 

Теперь отправьте полный файл bash_completion ( http://caliban.org/bash ) и поместите вышеупомянутый скрипт в файл внутри каталога bash_completion.d, который скрипт вы получите из ссылок URL. Дайте мне знать, если это не сработает.

Благодарю.

  • Как предотвратить очистку вывода терминала при выходе из сеанса SSH?
  • Как подождать в bash для нескольких subprocessов, чтобы закончить и вернуть код выхода! = 0, когда какой-либо subprocess заканчивается кодом! = 0?
  • $ Logout bash: logout: не login shell: используйте exit '
  • Сравнение / Разница двух массивов в bash
  • Проверьте наличие входного аргумента в сценарии оболочки Bash
  • Разрешение отклонено сообщение каждый раз, когда я запускаю терминал
  • Завершение Bash для команд в Mac OS X
  • Почему кошка не меняет время доступа?
  • Bash: ограничить количество одновременных заданий?
  • Открыть терминал gnome программно и выполнить команды после выполнения bashrc
  • Как предотвратить Bash от изменения истории?
  • Давайте будем гением компьютера.