Điều đó đúng: PS1
chỉ có ý nghĩa trong các trường hợp tương tác của bash, vì vậy nó nên được đặt ~/.bashrc
và không nên xuất. PS1
cũng có ý nghĩa trong các shell khác, nhưng nó có một ý nghĩa khác, bởi vì mở rộng nhanh chóng khác nhau giữa các shell. Trong thực tế, ngay cả giữa các trường hợp bash, PS1
có thể có ý nghĩa khác nhau, vì ý nghĩa phụ thuộc vào các tùy chọn shell (ít nhất promptvars
).
Xuất khẩu PS1
ra môi trường từ .profile
năm 1970 trở lại đây, khi chỉ có một vỏ sử dụng nó (vỏ Bourne) và nó không có tệp cấu hình. Nó vẫn hoạt động cho đến ngày hôm nay nếu bạn luôn sử dụng cùng một shell và không bao giờ cấu hình nó khác nhau. Nhưng tất cả vỏ hiện đại mà không được thiết kế hoàn toàn cho kịch bản (csh, ksh, bash, zsh, ...) đọc một tập tin cấu hình khi bắt đầu một cách tương tác ( .cshrc
, .kshrc
, .bashrc
, .zshrc
, ...), vì vậy phương pháp năm 1970 là không còn cần thiết. Cài đặt PS1
và các cài đặt dành riêng cho shell khác trong tệp dành riêng cho shell và không xuất nó ra môi trường, tránh phá vỡ mọi thứ khi bạn sử dụng cấu hình shell khác hoặc shell khác hoặc thiết bị đầu cuối khác không có khả năng hiển thị lời nhắc thông thường của bạn huyền ảo. Cài đặtPS1
trong một tệp dành riêng cho vỏ luôn hoạt động, trong khi cài đặt .profile
và xuất nó chỉ hoạt động trong các trường hợp đơn giản, vì vậy không có lý do gì để không thực hiện đúng cách, nhưng có rất nhiều hướng dẫn xấu trên web và thậm chí cấu hình mặc định xấu trong phân phối. C'est la vie .
PS1
từ.profile
công việc cho shell bash không đăng nhập vì họ sẽ không cung cấp nó? Bạn đang nói điều này sẽ hoạt động vì shell không đăng nhập sẽ được rẽ nhánh từ shell đăng nhập nên sẽ kế thừaPS1
qua môi trường?