Возврат карты без другого входа к псевдониму

тип[118175] и [118176] где это[118177] может показать, что, например,

tar cf - dir/ | ssh user@server "bzip2 -9 - > /target-path/archive.tar.bz2"  
#      ^ pipe tarball over network to zip ^ and archive on remote machine.

Для grep:

  1. Для chown:
    • locate[118179] также может быть полезным для отображения связанных файлов, основанных на поиске по подстановочным знакам, например. для команды chown:
  2. Наконец, когда в результате команда 'builtin', как вы видели для [118180]cd[118181], это означает, что код для нее на самом деле находится в основной программе bash, а не в другой программе, расположенной в другом месте диска.[117755].

2
07.11.2014, 03:06
2 ответа

Не уверен, что вы имеете в виду, но с zsh:

accept-line() {: "${BUFFER:="my-aliased-command"}"; zle ".$WIDGET"}
zle -N accept-line

Нажатие Enter на пустой буфер запустит my-aliased-command

Это переопределяет виджет accept-line как функцию. В виджетах zle (линейный редактор zsh) $BUFFER пока содержит содержимое командной строки. Поэтому здесь мы устанавливаем значение my-aliased-command, если ранее оно было пустым, а затем запускаем встроенный виджет accept-line (.accept-line).

Обратите внимание, что это означает, что команда my-aliased-command будет добавлена в историю команд.

Если вы этого не хотите, другой подход может быть следующим:

accept-line() {
  if [[ -z $BUFFER ]]; then
    zle -I
    my-aliased-command
  else
    zle ".$WIDGET"
  fi
}
zle -N accept-line

Если $BUFFER пуст, сделайте запрос недействительным (нет необходимости делать это, если команда ничего не выводит) и запустите my-aliased-command. В противном случае запустите встроенную строку accept-line.

2
27.01.2020, 22:13

Это возможно в Bash 4, но более громоздким, чем в ZSH . Вам необходимо определить функцию для проверки, если командная строка пуста; Командная строка находится в переменной readline_line . Проще использовать эту функцию, чтобы вставить нужную команду для пустых строк, а не договариваться, чтобы молча запустить команду. После запуска этой функции введите последовательность ключей, которая связана с отображением по умолчанию для возврата ; Ctrl + j обычно является синоним. Непроверенный код.

insert_default_command_if_empty () {
  if [[ -z $READLINE_LINE ]]; then READLINE_LINE='ls -l'; fi
}
bind '"\e[z1~": insert_default_command_if_empty'
bind '"\C-m": "\e[z1~\C-j"'
0
27.01.2020, 22:13

Теги

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