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 zshhoặc fish(có hoặc không -lcó 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 -cgiả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 $SCRIPTsẽ bắt đầu $ SCRIPT với một môi trường trống. (xem man bashtì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ể.