Câu trả lời:
Nó cập nhật lời nhắc để lặp lại Thư mục làm việc hiện tại (CWD) và được định nghĩa trong /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
mã kiểm soát để đặt văn bản thanh tiêu đề. Tài liệu dễ tiếp cận nhất có lẽ là Linux Bash Prompt Howto . Có tài liệu thực sự trong các xterm
nguồn, IIRC.
/etc/bashrc
, nó sử dụng biến $TERM_PROGRAM
để xác định thiết bị đầu cuối và chạy tương ứng /etc/bashrc_$TERM_PROGRAM
nếu nó tồn tại. Vì vậy, trong phiên màn hình, $TERM_PROGRAM
có thể không được đặt hoặc được đặt thành một cái gì đó khác Apple_Terminal
.
Chuỗi định dạng được mã hóa bí mật mờ, '\ e] 7;% s \ a'. Nghi ngờ.
local PWD_URL="file://$HOSTNAME${PWD//$SEARCH/$REPLACE}"
Từ những gì tôi thu thập được, "tệp: // $ HOSTNAME" được che dấu để bạn không thể thấy giao thức từ xa: gián điệp máy chủ.
update_terminal_cwd
không phải là một biến môi trường, nó là tên của một hàm. Nó được định nghĩa trong văn bản rõ ràng /etc/bashrc
và printf
chức năng không có khả năng làm bất cứ điều gì ngoại trừ in các chuỗi được định dạng lên màn hình. Cuối cùng, liên kết thô tục mà bạn đã đăng liên quan đến việc thực thi các hàm tùy ý bằng cách nối thêm văn bản vào định nghĩa biến môi trường ... không liên quan gì đến bất cứ điều gì đang được thảo luận ở đây. Và các trình duyệt có phải làm với shell scripting không?
typeset -f
nó sẽ hiển thị tất cả các chức năng "do người dùng xác định" và đó là cách nó xuất hiện. Nếu họ đang cố gắng làm một cái gì đó sơ sài, họ sẽ không làm cho điều này dễ dàng nhìn thấy.