Sebelum menginstal gnuplot, saya mengatur variabel lingkungan GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Selama instalasi, ada yang salah.
Saya ingin menghapus GNUPLOT_DRIVER_DIR
variabel lingkungan. Bagaimana saya bisa mencapainya?
Sebelum menginstal gnuplot, saya mengatur variabel lingkungan GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Selama instalasi, ada yang salah.
Saya ingin menghapus GNUPLOT_DRIVER_DIR
variabel lingkungan. Bagaimana saya bisa mencapainya?
Jawaban:
unset
adalah perintah yang Anda cari.
unset GNUPLOT_DRIVER_DIR
unexport
untuk melakukannya T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?
declare +x MYVAR
untuk menghapus ekspor tetapi menyimpan nilai dalam shell saat ini.
export -n MYWAR
berfungsi di Bash.
Uji apakah variabel DUALCASE ada:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Tidak, jadi buat variabel dan ekspor:
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE
Periksa apakah ada di sana:
el@apollo:~$ env | grep DUALCASE
DUALCASE=1
Itu di sana. Jadi singkirkan itu:
el@apollo:~$ unset DUALCASE
Periksa apakah masih ada di sana:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Variabel lingkungan yang diekspor DUALCASE dihapus.
Batalkan semua variabel lokal kembali ke default saat login:
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
perintah membersihkan semua variabel lokal tetapi tidak variabel lingkungan.
Batalkan semua variabel lingkungan kembali ke default saat login:
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
perintah membersihkan semua variabel lingkungan ke default saat login.
echo $VARIABLE
lebih baik daripada env | grep VARIABLE
, lebih ringan karena tidak perlu mencetak semua variabel dan kemudian mengirimkan hasilnya ke proses (grep) yang lain. Plus, env | VARIABLE
bisa menangkap lebih dari satu variabel yang cocok dengan pola yang sama. Plus2, echo $VARIABLE
memungkinkan untuk melengkapi nama variabel dengan menekan <Tab> (jika ada, itu juga bisa menjadi petunjuk untuk apa yang ingin Anda lakukan).
echo $VARIABLE
tidak memberi tahu Anda apakah VARIABEL adalah variabel shell (di sini disebut "variabel lokal") atau variabel lingkungan, yang merupakan inti dari langkah-langkah tersebut.
env -i bash
tampaknya membuat subkulit (setidaknya pada Mac) yang mungkin memiliki konsekuensi yang tidak diinginkan.
env | grep -e '^VARNAME='
.
Karena pertanyaan awal tidak menyebutkan bagaimana variabel ditetapkan, dan karena saya membuka halaman ini untuk mencari jawaban spesifik ini, saya menambahkan yang berikut:
Dalam C shell (csh / tcsh) ada dua cara untuk mengatur variabel lingkungan:
set x = "something"
setenv x "something"
Perbedaan dalam perilaku adalah bahwa variabel yang ditetapkan dengan perintah setenv secara otomatis diekspor ke subshell sedangkan variabel yang diatur dengan set tidak.
Untuk membatalkan set variabel dengan set , gunakan
unset x
Untuk membatalkan set variabel dengan setenv , gunakan
unsetenv x
Catatan: dalam semua hal di atas, saya berasumsi bahwa nama variabel adalah 'x'.
kredit:
https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/ https://www.oreilly.com/library/view/solaristm-7- referensi / 0130200484 / 0130200484_ch18lev1sec24.html
ini juga bisa berfungsi.
export GNUPLOT_DRIVER_DIR=
env
perintah. Mungkin saja kasus bahwa aplikasi yang menggunakan variabel tidak membedakan antara variabel lingkungan tidak ada dan kosong.
export PAGER=
, tetapi itu hanya menonaktifkan paging sepenuhnya - semua halaman manual saya langsung dibuang ke terminal. unset PAGER
melakukan trik, mengembalikannya ke perilaku default.
Seperti yang disebutkan dalam jawaban di atas, unset GNUPLOT_DRIVER_DIR
seharusnya berfungsi jika Anda telah export
mengatur variabel. Jika Anda telah mengaturnya secara permanen di ~/.bashrc
atau ~/.zshrc
kemudian hanya menghapusnya dari sana akan berhasil.