Câu trả lời:
Có vẻ như bạn có thể thêm tiền tố vào tập lệnh của mình env -i
để xóa môi trường trước khi chạy tập lệnh:
env -i sh test.sh
Từ man env
:
-i, --ignore-environment
start with an empty environment
Không chắc chắn tại sao bạn muốn làm điều này mặc dù ...
chsh ...
. Nếu tôi chỉ mở một cửa sổ đầu cuối và chạy zsh
hoặc fish
(có hoặc không -l
có vấn đề gì), nó gây ô nhiễm môi trường của tôi với tất cả các loại biến từ Tôi đã khởi động nó. Thực hiện thủ thuật env -c
giải quyết vấn đề này cho tôi. Tôi làm env -i TERM=xterm-256color $(which fish)
.
Một khả năng (mặc dù trông khá xấu xí):
exec -c $SCRIPT
sẽ bắt đầu $ SCRIPT với một môi trường trống. (xem man bash
tìm kiếm exec \[-cl\]
).
Theo tôi biết, câu trả lời là "Không". Bạn có thể ghi đè các biến môi trường trong chính tập lệnh. Giá trị của biến môi trường sẽ chuyển về giá trị ban đầu của nó sau khi tập lệnh được chạy xong. Bạn có thể cần chạy tập lệnh như một tiến trình con: $ this.script.sh & để tránh phải đăng xuất khỏi shell của bạn mỗi lần bạn chạy tập lệnh để đặt lại các biến môi trường của bạn về giá trị ban đầu.
Biên tập:
Từ một poster trước đó, dường như tôi đã sai về điều đó là không thể.