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_DIR
biế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_DIR
biế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 MYWAR
hoạ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 $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ó sang một quá trình (grep) khác. Thêm vào đó, env | VARIABLE
có thể bắt được nhiều hơn một biến khớp với cùng một mẫu. Plus2, echo $VARIABLE
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).
echo $VARIABLE
khô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 bash
dườ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=
env
lệ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_DIR
sẽ hoạt động nếu bạn đã sử dụng export
để đặt biến. Nếu bạn đã đặt nó vĩnh viễn ~/.bashrc
hoặc ~/.zshrc
sau đó chỉ cần gỡ bỏ nó khỏi đó sẽ hoạt động.