Trước khi cài đặt gnuplot, tôi đặt biến môi trường GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src. Trong quá trình cài đặt, đã xảy ra lỗi.
Tôi muốn loại bỏ các GNUPLOT_DRIVER_DIRbiến môi trường. Làm thế nào tôi có thể đạt được nó?
Trước khi cài đặt gnuplot, tôi đặt biến môi trường GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src. Trong quá trình cài đặt, đã xảy ra lỗi.
Tôi muốn loại bỏ các GNUPLOT_DRIVER_DIRbiến môi trường. Làm thế nào tôi có thể đạt được nó?
Câu trả lời:
unset là lệnh bạn đang tìm kiếm.
unset GNUPLOT_DRIVER_DIR
unexportđể làm T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T?
declare +x MYVARđể xóa xuất nhưng giữ giá trị trong trình bao hiện tại.
export -n MYWARhoạt động tốt trong Bash.
Kiểm tra nếu biến DUALCASE tồn tại:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Nó không, vì vậy hãy tạo biến và xuất nó:
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE
Kiểm tra nếu nó ở đó:
el@apollo:~$ env | grep DUALCASE
DUALCASE=1
Nó ở đó. Vì vậy, hãy thoát khỏi nó:
el@apollo:~$ unset DUALCASE
Kiểm tra xem nó có còn ở đó không:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Biến môi trường xuất DUALCASE bị xóa.
Bỏ đặt tất cả các biến cục bộ trở 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ộ nhưng không phải biến môi trường.
Bỏ đặt tất cả các biến môi trường trở 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.
echo $VARIABLEtố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ó sang một quá trình (grep) khác. Thêm vào đó, env | VARIABLEcó thể bắt được nhiều hơn một biến khớp với cùng một mẫu. Plus2, echo $VARIABLEcó 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).
echo $VARIABLEkhông cho bạn biết liệu VARIABLE là biến shell (ở đây được gọi là "biến cục bộ") hay biến môi trường, là toàn bộ điểm của hướng dẫn.
env -i bashdường như đang tạo một lớp con (ít nhất là trên máy Mac) có thể gây ra hậu quả không lường trước được.
env | grep -e '^VARNAME='.
Bởi vì câu hỏi ban đầu không đề cập đến cách biến được đặt và vì tôi đã vào trang này để tìm câu trả lời cụ thể này, nên tôi thêm vào như sau:
Trong C shell (csh / tcsh) có hai cách để đặt biến môi trường:
set x = "something"setenv x "something"Sự khác biệt trong hành vi là các biến được thiết lập bằng lệnh setenv sẽ tự động được xuất sang subshell trong khi biến được đặt với set không.
Để bỏ đặt một bộ biến với bộ , sử dụng
unset x
Để bỏ đặt một bộ biến với setenv , hãy sử dụng
unsetenv x
Lưu ý: trong tất cả các mục trên, tôi giả sử rằng tên biến là 'x'.
tín dụng:
https://www.cyberciti.biz/faq/unix-linux-difference-b between-set-and-setenv-c-shell-variable / https://www.oreilly.com/l Library / view / solaristm-7- tham khảo / 0130200484/0130200484_ch18lev1sec24.html
điều này cũng có thể làm việc
export GNUPLOT_DRIVER_DIR=
envlệnh. 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à biến môi trường trống.
export PAGER=, nhưng điều đó chỉ vô hiệu hóa phân trang hoàn toàn - tất cả các trang người đàn ông của tôi chỉ đổ thẳng vào thiết bị đầu cuối. unset PAGERđã lừa, hoàn nguyên nó thành hành vi mặc định.
Như đã đề cập trong các câu trả lời ở trên, unset GNUPLOT_DRIVER_DIRsẽ hoạt động nếu bạn đã sử dụng exportđể đặt biến. Nếu bạn đã đặt nó vĩnh viễn ~/.bashrchoặc ~/.zshrcsau đó chỉ cần gỡ bỏ nó khỏi đó sẽ hoạt động.