Odpowiedzi:
Aktualizuje monit o echo bieżącego katalogu roboczego (CWD) i jest zdefiniowany w /etc/bashrc
:
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"
}
xterm
kod kontrolny do ustawiania tekstu paska tytułu. Najbardziej dostępną dokumentacją jest być może Linux Bash Prompt Howto . W xterm
źródłach znajduje się prawdziwa dokumentacja , IIRC.
/etc/bashrc
, używa zmiennej, $TERM_PROGRAM
aby określić terminal i uruchomić odpowiedni, /etc/bashrc_$TERM_PROGRAM
jeśli istnieje. Więc w sesji ekranowej $TERM_PROGRAM
prawdopodobnie nie jest ustawiony lub jest ustawiony na coś innego niż Apple_Terminal
.
Nieprzezroczysty ciąg formatu zakodowanego tajnego „\ e] 7;% s \ a”. Posądzać.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Z tego, co zbieram, „file: // $ HOSTNAME” jest maskowany, więc nie widzisz protokołu zdalnego: szpiegostwo hosta.
update_terminal_cwd
nie jest zmienną środowiskową, to nazwa funkcji. Jest on zdefiniowany w postaci zwykłego tekstu, /etc/bashrc
a printf
funkcja nie może nic robić poza drukowaniem sformatowanych ciągów na ekranie. Wreszcie, opublikowany przez ciebie link do wulgaryzmów polega na wykonywaniu dowolnych funkcji poprzez dołączanie tekstu do definicji zmiennej środowiskowej ... która nie ma nic wspólnego z niczym, co jest tutaj omawiane. I czy wtf mają do czynienia ze skryptami powłoki?
typeset -f
, pokaże wszystkie funkcje zdefiniowane przez użytkownika i tak to się pojawiło. Gdyby próbowali zrobić coś szkicowego, nie zrobiliby tego łatwo.