Невозможно устранить ошибку после изменения прерывания в .profile на macOS - PullRequest
1 голос
/ 12 апреля 2019

В моем ~/.profile я использую это во FreeBSD 12.0, которая прекрасно работает:

prompt_title_command() {
    # use OSC escape sequence to set window/tab title
    printf "\e]0;${USER}@${HOSTNAME} \u2014 ${PWD} \u2014 ${BASH_COMMAND}\a"
}
trap prompt_title_command DEBUG

Устанавливает заголовок окна / вкладки. \u2014 - это юникодный символ em-dash.

Затем я скопировал его и попытался использовать в macOS 10.14.3, но получил бы следующие ошибки:

-bash: printf: missing unicode digit for \u

-bash: printf: missing unicode digit for \u

Несмотря на то, что я получил бы эту ошибку, символ Unicode печатается, как и ожидалось в заголовке.

Это происходит только при открытии новой вкладки или окна.

Затем я изменил предыдущий код, чтобы использовать две обычные черточки вместо юникод-тире:

prompt_title_command() {
    # use OSC escape sequence to set window/tab title
    printf "\e]0;${USER}@${HOSTNAME} -- ${PWD} -- ${BASH_COMMAND}\a"
}
trap prompt_title_command DEBUG

Но я все равно получаю те же ошибки и не могу от них избавиться, что бы я ни пытался, если не закомментировать строку trap.

Версия:

  • GNU bash, версия 4.4.23 (1) -релиз (amd64-portbld-freebsd12.0)
  • GNU bash, версия 4.4.23 (1) -релиз (x86_64-apple-darwin18.0.0)

Эта идея исходит от: https://mg.pov.lt/blog/bash-prompt.html

1 Ответ

0 голосов
/ 12 апреля 2019

Перемещение ловушки на значение после PS1 устраняет проблему.Я не знаю, почему это имеет значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...