Команда Wrap в подсказке

Можно ли вставить разделитель после команды в приглашении? Это пример:

~/Desktop: ls -al ------------------------------------- total 80 drwx------+ 6 eddie staff 204B Apr 29 16:57 . drwxr-xr-x+ 54 eddie staff 1.8K Apr 30 10:54 .. ~/Desktop: 

В частности, я хочу добавить часть ——— после выдачи команды, чтобы легче отличить команду от результата

2 Solutions collect form web for “Команда Wrap в подсказке”

В zsh вы можете определить функцию preexec для эха указанной строки перед каждой командой.

В bash вы можете использовать ловушку DEBUG чтобы настроить крюк preexec, чтобы сделать то же самое.

Вы определяете функцию preexec () следующим образом:

 preexec () { echo "-------------------------------"; } preexec_invoke_exec () { [ -n "$COMP_LINE" ] && return # do nothing if completing preexec } trap 'preexec_invoke_exec' DEBUG 

См. Более подробную информацию о том, есть ли у bash крючок, который выполняется перед выполнением команды?

Я не думаю, что это работает во всех версиях bash. На моем старом сервере Ubuntu, запускающем bash 3.2.39 (1), help trap говорит

Если SIGNAL_SPEC является DEBUG, ARG выполняется после каждой простой команды.

На другом сервере, запущенном bash 4.1.2 (1), говорится:

Если SIGNAL_SPEC является DEBUG, ARG выполняется перед каждой простой командой.

это то, что нам нужно. Поэтому убедитесь, что в вашей версии bash, help trap говорит « перед каждой простой командой».

Если вы используете bash или ksh для своей оболочки, вы можете создать функцию в одном из ваших dotfiles (.profile, .bash_profile и т. Д.) Следующим образом:

 function hr { echo "--------------------------------------------------------------------------------" } 

Затем вы можете добавлять его к командам всякий раз, когда вы хотите, чтобы этот разделитель использовал && или ; как разделители команд. Как в:

 bash-[534]$ hr && ls -------------------------------------------------------------------------------- ddtool_23.jnlp prtconf-pv 

или

 bash-[536]$ hr ; ls -la -------------------------------------------------------------------------------- total 36K drwxr-xr-x 2 tim staff 4 2012-12-06 15:02 ./ drwxr-xr-x 46 tim staff 134 2013-04-30 14:59 ../ -rw------- 1 tim staff 2.7K 2012-12-06 15:00 ddtool_23.jnlp -rw-r--r-- 1 tim staff 24K 2012-12-06 15:02 prtconf-pv 

Я делаю это. У меня есть вторая функция, которая также печатает более толстый разделитель.

 function hr2 { echo "================================================================================" } 

Я часто использую эти функции в сценариях оболочки, чтобы обеспечить разделение на разные части скриптов, например hr2 между основными задачами, и hr между элементами в инструкции цикла. Это значительно облегчает чтение скриптов.

  • Преобразование истории в скрипт?
  • Липкие записи в истории оболочки
  • oh-my-zsh завершение стиля для путей каталога / файла без oh my zsh
  • Использовать ранее напечатанный текст в команде
  • Привязать префикс tmux к символу раздела §
  • Как сделать RPROMPT в самом обновлении zsh при каждом входе?
  • Какие файлы были получены, zsh
  • Поиск в обратном и прямом направлениях осуществляется с помощью vi-режима в zsh
  • Используйте `/ etc / paths` или` / etc / paths.d` для добавления элементов в PATH в macOS Sierra?
  • разница между omz "плагинами" и "темами"?
  • Когда вы используете расширение скобки?
  • Linux и Unix - лучшая ОС в мире.