Команда 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: 

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

  • Ruby Version Prompt (Oh My ZSH) не работает вне TMUX
  • pwd не задан правильно в запросе zsh
  • Как я могу получить постоянный dirstack с уникальными записями в zsh?
  • bash: rsync: команда не найдена
  • как прокручивать несколько строк в завершении экрана zsh
  • Как избавиться от «Ничего не найдено» при запуске «rm *»
  • Запустите .zshrc при передаче команды через -c
  • Использование шаблонов OR в шаблонах оболочки
  • 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 между элементами в инструкции цикла. Это значительно облегчает чтение скриптов.

    Interesting Posts

    Мост OpenVPN. Не удается получить доступ к машинам в локальной сети

    Как выполнить grep на FTP?

    Создание неформатированного раздела с нераспределенного дискового пространства

    Команда с несколькими переменными

    HowTo Chroot для BSD

    Разница между Gentoo и Funtoo

    Я создал новую группу и нового пользователя. Затем я добавил пользователя в группу. Как я могу перейти к этому пользователю?

    Как сравнивать каталоги с двоичными файлами

    Список файлов труб в 'git add'

    Почему для построения ядра Android требуется инструментальная цепочка, но скомпилировать весь источник нет?

    Показывать значки (или цвета), даже если переключатель рабочего пространства невелик?

    Когда я могу использовать временную IFS для разделения поля?

    Обратный туннель SSH работает для SSH, но не для HTTP

    Баш не возвращается $? переменная правильно

    Сколько было загружено за последние пять минут?

    Linux и Unix - лучшая ОС в мире.