Cela me laisse perplexe depuis un certain temps maintenant. Dans $PROMPT_COMMAND
le bash sous OS X, il y a une commande appelée update_terminal_cwd
. Je suis sûr que ce n'est pas un bash intégré, et n'existe probablement que sous OS X. Mais je ne sais pas exactement ce qu'il fait. Quelqu'un sait?
21
xterm
code de contrôle pour définir le texte de la barre de titre. La documentation la plus accessible est peut-être le Linux Bash Prompt Howto . Il y a une vraie documentation dans lesxterm
sources, IIRC./etc/bashrc_Apple_Terminal
(trouvée via une astuce apprise ici ). Mais je trouve qu'à l'intérieur d'une session écran, $ PROMPT_COMMAND devient une chaîne vide, ce qui signifie qu'il/etc/bashrc_Apple_Terminal
n'est probablement plus exécuté. Est-ce que tu sais pourquoi?/etc/bashrc
, il utilise la variable$TERM_PROGRAM
pour déterminer le terminal et exécuter un correspondant/etc/bashrc_$TERM_PROGRAM
s'il existe. Ainsi, dans la session d'écran,$TERM_PROGRAM
n'est probablement pas défini ou est défini sur autre chose queApple_Terminal
.Chaîne de format codée secrète opaque, '\ e] 7;% s \ a'. Suspect.
D'après ce que je comprends, "file: // $ HOSTNAME" est masqué de sorte que vous ne pouvez pas voir le protocole distant: espionnage de l'hôte.
la source
update_terminal_cwd
n'est pas une variable d'environnement, c'est le nom d'une fonction. Il est défini en texte clair dans/etc/bashrc
et laprintf
fonction n'a pas la possibilité de faire autre chose que d'imprimer des chaînes formatées à l'écran. Enfin, le lien vuln que vous avez publié implique l'exécution de fonctions arbitraires en ajoutant du texte à une définition de variable d'environnement ... ce qui n'a rien à voir avec tout ce qui est discuté ici. Et quel est le rôle des navigateurs dans les scripts shell?typeset -f
il affichera toutes les fonctions "définies par l'utilisateur" et c'est comme ça que ça a surgi. S'ils essayaient de faire quelque chose de sommaire, ils ne le rendraient pas facilement visible.