Saya bingung dengan itu untuk beberapa saat sekarang. Di $PROMPT_COMMAND
dalam bash di OS X, ada perintah yang disebut update_terminal_cwd
. Saya yakin ini bukan bash bawaan, dan kemungkinan besar hanya ada di OS X. Tapi saya tidak tahu apa tepatnya itu. Ada yang tahu?
21
xterm
kode kontrol untuk mengatur teks judul bar. Dokumentasi yang paling mudah diakses mungkin adalah Linux Bash Prompt Howto . Ada dokumentasi nyata dixterm
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 selainApple_Terminal
.String format disandikan rahasia buram, '\ e] 7;% s \ a'. Tersangka.
Dari apa yang saya kumpulkan, "file: // $ HOSTNAME" disembunyikan sehingga Anda tidak dapat melihat protokol jarak jauh: host spionage.
sumber
update_terminal_cwd
bukan variabel lingkungan, itu adalah nama fungsi. Ini didefinisikan dalam teks yang jelas di/etc/bashrc
danprintf
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.