Câu hỏi Làm cách nào để xóa biến môi trường đã xuất?


Trước khi cài đặt gnuplot, tôi đặt biến môi trường GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src. Trong khi cài đặt, đã xảy ra sự cố.

Tôi muốn xóa GNUPLOT_DRIVER_DIR biến môi trường. Làm thế nào tôi có thể đạt được nó?


1165
2017-07-29 18:58


gốc




Các câu trả lời:


unset là lệnh bạn đang tìm kiếm.

unset GNUPLOT_DRIVER_DIR

1869
2017-07-29 19:00



nhưng điều này chỉ hoạt động cho một phiên, những gì về unsetting nó chắc chắn? hoặc có thể tìm kiếm ở đâu là tập hợp biến, vì vậy bạn có thể đi và xóa nó? - eLRuLL
Điều này sẽ làm việc cho mỗi trường hợp thiết bị đầu cuối. Nói chung, mỗi khi một cửa sổ đầu cuối được mở ra, nó sẽ tải lên các biến từ các vị trí khác nhau như ~ / .bashrc, ~ / .profile, v.v. Bất kỳ biến nào bạn đặt trong một cá thể đầu cuối sẽ không chuyển sang một biến khác. Nếu bạn có một biến mà dường như được thiết lập tự động mỗi khi bạn mở thiết bị đầu cuối, hãy thử tìm kiếm thông qua các tập tin ẩn khác nhau trong thư mục nhà của bạn cho nó. Hoặc, để xem nơi nó đang được thiết lập, hãy thử "grep -r <X> ~" trong đó <X> là tên của biến. Quá trình này có thể mất một lúc nếu bạn có nhiều tệp trong thư mục chính của mình. - matt5784
Lưu ý: unset không yêu cầu $ trước tên biến - user83039
@ user83039 "không yêu cầu" như trong KHÔNG SỬ DỤNG, nó sẽ không hoạt động theo cách đó! - eis
@olejorgenb Ít nhất trong bash, bạn có thể nói declare +x MYVAR để loại bỏ xuất nhưng giữ giá trị trong trình bao hiện tại. - Peder Klingenberg


Hướng dẫn tạo và xóa biến môi trường trong bash:

Kiểm tra nếu biến DUALCASE tồn tại:

el@apollo:~$ env | grep DUALCASE
el@apollo:~$ 

Nó không, do đó, tạo biến và xuất nó:

el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE

Kiểm tra xem nó có ở đó không:

el@apollo:~$ env | grep DUALCASE
DUALCASE=1

Nó ở đó. Vì vậy, hãy loại bỏ nó:

el@apollo:~$ unset DUALCASE

Kiểm tra xem nó vẫn còn đó:

el@apollo:~$ env | grep DUALCASE
el@apollo:~$ 

Biến môi trường xuất khẩu DUALCASE bị xóa.

Các lệnh bổ sung để giúp xóa biến cục bộ và môi trường của bạn:

Bỏ đặt tất cả các biến cục bộ về mặc định khi đăng nhập:

el@apollo:~$ CAN="chuck norris"
el@apollo:~$ set | grep CAN
CAN='chuck norris'
el@apollo:~$ env | grep CAN
el@apollo:~$
el@apollo:~$ exec bash
el@apollo:~$ set | grep CAN
el@apollo:~$ env | grep CAN
el@apollo:~$

exec bash lệnh xóa tất cả các biến cục bộ chứ không phải biến môi trường.

Bỏ đặt tất cả các biến môi trường về mặc định khi đăng nhập:

el@apollo:~$ export DOGE="so wow"
el@apollo:~$ env | grep DOGE
DOGE=so wow
el@apollo:~$ env -i bash
el@apollo:~$ env | grep DOGE
el@apollo:~$

env -i bash lệnh xóa tất cả các biến môi trường để mặc định khi đăng nhập.


141
2018-06-03 23:39



có lẽ echo $VARIABLE tốt hơn env | grep VARIABLE, nó nhẹ hơn vì nó không cần in tất cả các biến và sau đó gửi đầu ra của nó đến một quá trình khác (grep). Thêm, env | VARIABLE có thể bắt nhiều hơn một biến phù hợp với cùng một mẫu. Plus2, echo $VARIABLE làm cho có thể hoàn thành tên của biến bằng cách nhấn <Tab> (nếu nó tồn tại, đó cũng có thể là một gợi ý cho những gì bạn muốn làm). - Rodrigo Gurgel
env -i bash mát mẻ. Cảm ơn vì điều đó. - Sudipta Basak
'env | grep VARIABLE 'tốt hơn' echo $ VARIABLE 'vì tôi có thể nói nó thực sự biến mất - calasyr
@RodrigoGurgel, echo $VARIABLE không cho bạn biết liệu VARIABLE có phải là biến hệ vỏ hay không (ở đây được gọi là "biến cục bộ") hoặc một biến môi trường, là toàn bộ điểm của hướng dẫn. - hmijail
Lưu ý rằng env -i bash dường như đang tạo ra một vỏ bọc con (ít nhất là trên máy Mac) có thể có hậu quả không mong muốn. - Mark Chackerian


điều này cũng có thể hiệu quả.

export GNUPLOT_DRIVER_DIR=

3
2017-12-20 11:00



Biến này vẫn tồn tại, nhưng nó chứa một chuỗi rỗng, như bạn có thể thấy trong đầu ra của envchỉ huy. Nó chỉ có thể là trường hợp ứng dụng sử dụng biến không phân biệt giữa biến môi trường không tồn tại và trống. - Palec
có nó sẽ chứa, đây chỉ là để loại bỏ giá trị không để loại bỏ biến. Nhưng có một người có thể sử dụng - không đặt GNUPLOT_DRIVER_DIR. - Nilesh K.