जवाबों:
यह वर्तमान कार्य निर्देशिका (CWD) को प्रतिध्वनित करने के लिए संकेत को अद्यतन करता है और इसमें परिभाषित किया गया है /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शीर्षक बार पाठ सेट करने के लिए यह एक नियंत्रण कोड है। सबसे सुलभ दस्तावेज शायद लिनक्स बैश प्रॉम्प्ट होटो है । xtermस्रोतों में वास्तविक प्रलेखन है , IIRC।
/etc/bashrc_Apple_Terminal( यहां सीखी गई ट्रिक के माध्यम से पाया गया )। लेकिन मुझे लगता है कि एक स्क्रीन सत्र के अंदर $ PROMPT_COMMAND एक रिक्त स्ट्रिंग बन जाती है, जिसका अर्थ है /etc/bashrc_Apple_Terminalकि शायद अब निष्पादित नहीं किया गया है। तुम जानते हो क्यों?
/etc/bashrc, तो यह $TERM_PROGRAMटर्मिनल को निर्धारित करने के लिए चर का उपयोग करता है और /etc/bashrc_$TERM_PROGRAMयदि मौजूद है तो उसे चलाता है। इसलिए स्क्रीन सत्र में, $TERM_PROGRAMशायद सेट नहीं किया गया है, या इसके अलावा किसी अन्य चीज़ पर सेट किया गया है Apple_Terminal।
ओपेक गुप्त एन्कोडेड प्रारूप स्ट्रिंग, '\ e] 7;% s \ a'। संदिग्ध।
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
मैं जो इकट्ठा करता हूं, उससे "फ़ाइल: // $ HOSTNAME" को बाहर निकाल दिया जाता है ताकि आप दूरस्थ प्रोटोकॉल नहीं देख सकें: होस्ट जासूसी।
update_terminal_cwdपर्यावरण चर नहीं है, यह एक फ़ंक्शन का नाम है। इसे स्पष्ट पाठ में परिभाषित किया गया है /etc/bashrcऔर printfफ़ंक्शन में स्क्रीन पर मुद्रित स्वरूपित तारों के अलावा कुछ भी करने की क्षमता नहीं है। अंत में, आपके द्वारा पोस्ट की गई वल्कन लिंक में टेक्स्ट को एनवायरनमेंट वैरिएबल डेफिनिशन में एप्लाइड करके मनमाने कार्यों को अंजाम देना शामिल है ... जिसका यहां होने वाली किसी भी चीज से कोई लेना-देना नहीं है। और wtf ब्राउज़र को शेल स्क्रिप्टिंग के साथ क्या करना है?
typeset -fयह सभी "उपयोगकर्ता परिभाषित" कार्यों को दिखाएगा और इस तरह यह पॉप अप हो जाएगा। अगर वे कुछ स्केच करने की कोशिश कर रहे थे, तो वे आसानी से दिखाई नहीं देंगे।