Jawaban:
Ini memperbarui permintaan untuk menggemakan Direktori Kerja Saat Ini (CWD) dan didefinisikan dalam /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
kode kontrol untuk mengatur teks judul bar. Dokumentasi yang paling mudah diakses mungkin adalah Linux Bash Prompt Howto . Ada dokumentasi nyata di xterm
sumbernya, IIRC.
/etc/bashrc_Apple_Terminal
(ditemukan melalui trik yang dipelajari di sini ). Tetapi saya menemukan bahwa di dalam sesi layar, $ PROMPT_COMMAND menjadi string kosong, yang berarti /etc/bashrc_Apple_Terminal
mungkin tidak dieksekusi lagi. Apa kamu tahu kenapa?
/etc/bashrc
, ia menggunakan variabel $TERM_PROGRAM
untuk menentukan terminal dan menjalankan yang sesuai /etc/bashrc_$TERM_PROGRAM
jika ada. Jadi dalam sesi layar, $TERM_PROGRAM
mungkin tidak diatur, atau diatur ke sesuatu selain Apple_Terminal
.
String format disandikan rahasia buram, '\ e] 7;% s \ a'. Tersangka.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Dari apa yang saya kumpulkan, "file: // $ HOSTNAME" disembunyikan sehingga Anda tidak dapat melihat protokol jarak jauh: host spionage.
update_terminal_cwd
bukan variabel lingkungan, itu adalah nama fungsi. Ini didefinisikan dalam teks yang jelas di /etc/bashrc
dan printf
fungsi tidak memiliki kemampuan untuk melakukan apa pun kecuali mencetak string yang diformat ke layar. Akhirnya, tautan vuln yang Anda posting melibatkan menjalankan fungsi arbitrer dengan menambahkan teks ke definisi variabel lingkungan ... yang tidak ada hubungannya dengan apa pun yang sedang dibahas di sini. Dan apa hubungannya browser dengan shell scripting?
typeset -f
itu akan menampilkan semua fungsi "yang ditentukan pengguna" dan itulah bagaimana ini muncul. Jika mereka mencoba melakukan sesuatu yang samar, mereka tidak akan membuat ini mudah terlihat.