Настроить bash для выполнения команды с последним аргументом, если аргумент не был предоставлен

Я хотел бы настроить bash так, что когда я выполняю команду (желательно из списка команд, а не любую команду) без аргумента, он принимает аргумент предыдущей команды.

Так, например, я emacs ~/.bashrc , затем, когда я вхожу в source , bash выполняет source ~/.bashrc . Я знаю, что это возможно, но я не знаю, где искать такие варианты.

2 Solutions collect form web for “Настроить bash для выполнения команды с последним аргументом, если аргумент не был предоставлен”

Вы можете нажать « Пробел», затем « Мета. перед нажатием Enter . Это имеет то преимущество, что вы можете использовать его даже с командами, которые имеют смысл при применении к никаким аргументам. Для source используйте . набрать меньше.

Если вы старая школа, вы можете использовать !^ Вместо этого, чтобы вспомнить первый аргумент из предыдущей команды или !$ Для вызова последнего аргумента или !* Чтобы вызвать все из них (кроме имени команды).

Вы можете получить именно то поведение, которое вы описываете, написав функции, которые обтекают каждую команду. Последний аргумент из предыдущей команды доступен в специальном параметре $_ .

 make_wrapper_to_recall_last_argument () { for f do eval <<EOF; done function $f { if [ \$# -eq 0 ]; then set -- "\$_"; fi command $f "\$@" } EOF } make_wrapper_to_recall_last_argument source . 

Закрывающая стратегия, которую я знаю, – Alt + .

Это позволяет вам перебирать все предыдущие аргументы.

  • понимание значения по умолчанию IFS
  • Вложенные строки в команде bash
  • Развернуть подоболочку перед ее выполнением?
  • globbing и $ #
  • Разбиение рабочего каталога в сценарии bash
  • Копирование файлов с несколькими расширениями
  • Как задержать аргумент командной строки?
  • Будет ли `cat ~ / foo *> ~ / results / output.txt` сохранять порядок` ~ / foo * `?
  • Очень странное поведение с grep и IFS
  • Разделение аргумента командной строки bash
  • Приглашение PS1 на локальную и удаленную консоль
  • Linux и Unix - лучшая ОС в мире.