Вам не хватает -e
для эха, который сообщает ему интерпретировать escape-последовательности обратной косой черты. Попробуйте это:
$ echo -en "\033]0;foo\007"
Хотя @ Крис-страница правильно о -n
нестандартного, Баш эхо и встроенная система/бене/эха как поддержка -n
. Тем не менее, системное эхо не поддерживает -e
, который является реальной функцией импорта при попытке отправить эти escape-коды на терминал.
Также следует помнить, что общесистемные /etc/bashrc
наборы PROMPT_COMMAND
функции update_terminal_cwd
, которая определяется как:
update_terminal_cwd() {
# Identify the directory using a "file:" scheme URL,
# including the host name to disambiguate local vs.
# remote connections. Percent-escape spaces.
local SEARCH=' '
local REPLACE='%20'
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
printf '\e]7;%s\a' "$PWD_URL"
}
и, видимо, operating system code 7 для Terminal.app компании Apple устанавливает специальную ссылку значок для текущей работы каталог. Вы можете щелкнуть правой кнопкой мыши значок папки в строке заголовка, чтобы открыть Finder в этом месте. Этот код также немного изменяет заголовок заголовка, добавляя последний компонент текущего рабочего каталога.
Я изучаю, как устанавливаются заголовки вкладки Terminal.app и заголовок заголовка. И, судя по всему, они хорошо сочетаются с xterm's, где «имя значка» - это заголовок вкладки, а «заголовок окна» - заголовок заголовка.
- Заголовок заголовка - это то, что вы установили с помощью osc-2 (или osc-0). Если дополнительный компонент пути установлен osc-7, он будет добавлен к заголовку заголовка. И если какие-либо компоненты отмечены в окне «Настройки-> Настройки->», они будут добавлены в заголовок заголовка.
- Заголовок вкладки - это то, что вы установили с помощью osc-1 (или osc-0). Если это не задано, это будет содержимое окна
Title
окна «Настройки-> Настройки-> с добавлением активного имени процесса. Если заголовок точно равен Terminal
(независимо от того, задано ли оно текстовым полем в настройках или с помощью osc-1), заголовок вкладки будет только активным именем процесса.
still output '-en' – gongqj
Возможно, вы используете оболочку, кроме bash? Например, '/ bin/sh' не поддерживает ни' -e', ни '-n', как опции для встроенного' echo'. Системный двоичный '/ bin/echo' поддерживает' -n', но не '-e'. И встроенное 'echo' bash поддерживает как' -e', так и '-n'. Я нахожусь в OS X 10.9.1, который поставляется с bash 3.2, и он поддерживает '-en', я также установил 4.2 и все еще поддерживает оба.Хотя я думаю, что оболочка по умолчанию на OS X может быть '/ bin/sh', попробуйте изменить ее с помощью' chsh -s/bin/bash' и открыть новый терминал. – onlynone