тип[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:
Не уверен, что вы имеете в виду, но с 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
.
Это возможно в 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"'