Có thể gọi một tập lệnh trong ví dụ này được đặt tên hey.sh
theo mỗi lệnh bash không?
Ví dụ: bạn gõ ls
nhấn enter và ls chạy, sau đó hey.sh
sẽ chạy.
Sau đó, bạn gõ cd ..
(hoặc bất kỳ lệnh nào khác) , cd chạy rồi hey.sh
sẽ chạy, v.v.
Có thể gọi một tập lệnh trong ví dụ này được đặt tên hey.sh
theo mỗi lệnh bash không?
Ví dụ: bạn gõ ls
nhấn enter và ls chạy, sau đó hey.sh
sẽ chạy.
Sau đó, bạn gõ cd ..
(hoặc bất kỳ lệnh nào khác) , cd chạy rồi hey.sh
sẽ chạy, v.v.
Câu trả lời:
PROMPT_COMMAND+="hey.sh;"
PROMPT_COMMAND Nếu được đặt, giá trị được thực thi dưới dạng lệnh trước khi phát hành từng dấu nhắc chính.
Theo mặc định, PROMPT_COMMAND
là không một biến môi trường . Nó chỉ là một biến vỏ .
Cả hai loại biến được truy cập theo cùng một cách ( "$variable*"
), nhưng các biến môi trường được kế thừa bởi các tiến trình con trong khi các biến shell không có.
Quy ước là viết hoa các biến môi trường + biến shell cấu hình shell của bạn (PROMPT_COMMAND không cấu hình shell của bạn), nhưng giữ các loại biến khác trong trường hợp thấp hơn.
Trong bash , bạn có thể làm: declare -p
để tìm hiểu xem một biến có được xuất không (= là biến môi trường) hay không:
$ declare -p PATH
declare -x PATH=... #-x means it's exported
$ declare PROMPT_COMMAND
declare -- PROMPT_COMMAND=... #no -x so just a shell variable
export
. Chỉ cần đặt nó (hoặc nối thêm vào nó, ví dụ, như được hiển thị ở trên).