Respuestas:
Actualiza la solicitud para hacer eco del directorio de trabajo actual (CWD) y se define en /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
código de control para establecer el texto de la barra de título. La documentación más accesible es, tal vez, el Linux Bash Prompt Howto . Hay documentación real en las xterm
fuentes, IIRC.
/etc/bashrc_Apple_Terminal
(se encuentra a través de un truco aprendido aquí ). Pero encuentro que dentro de una sesión de pantalla, $ PROMPT_COMMAND se convierte en una cadena vacía, lo que significa que /etc/bashrc_Apple_Terminal
probablemente ya no se ejecute. ¿Sabes por qué?
/etc/bashrc
, utiliza la variable $TERM_PROGRAM
para determinar el terminal y ejecutar un correspondiente /etc/bashrc_$TERM_PROGRAM
si existe. Entonces, en la sesión de pantalla, $TERM_PROGRAM
probablemente no esté configurado, o esté configurado en algo diferente Apple_Terminal
.
Cadena de formato codificado secreto opaco, '\ e] 7;% s \ a'. Sospechar.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Por lo que deduzco, "file: // $ HOSTNAME" está enmascarado para que no pueda ver el protocolo remoto: espionaje de host.
update_terminal_cwd
no es una variable de entorno, es el nombre de una función. Está definido en texto claro /etc/bashrc
y la printf
función no tiene la capacidad de hacer nada excepto imprimir cadenas formateadas en la pantalla. Finalmente, el enlace vuln que publicó implica ejecutar funciones arbitrarias al agregar texto a una definición de variable de entorno ... que no tiene nada que ver con nada de lo que se está discutiendo aquí. ¿Y qué tienen que ver los navegadores con los scripts de shell?
typeset -f
, mostrará todas las funciones "definidas por el usuario" y así surgió. Si intentaran hacer algo incompleto, no lo harían fácilmente visible.