Antes de instalar o gnuplot, defino a variável de ambiente GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Durante a instalação, algo deu errado.
Eu quero remover a GNUPLOT_DRIVER_DIR
variável de ambiente. Como posso conseguir isso?
Antes de instalar o gnuplot, defino a variável de ambiente GNUPLOT_DRIVER_DIR = /home/gnuplot/build/src
. Durante a instalação, algo deu errado.
Eu quero remover a GNUPLOT_DRIVER_DIR
variável de ambiente. Como posso conseguir isso?
Respostas:
unset
é o comando que você está procurando.
unset GNUPLOT_DRIVER_DIR
unexport
de fazer T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T
?
declare +x MYVAR
remover a exportação, mas manter o valor no shell atual.
export -n MYWAR
funciona no Bash.
Teste se a variável DUALCASE existe:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
Como não, crie a variável e exporte-a:
el@apollo:~$ DUALCASE=1
el@apollo:~$ export DUALCASE
Verifique se existe:
el@apollo:~$ env | grep DUALCASE
DUALCASE=1
Está lá. Então se livre disso:
el@apollo:~$ unset DUALCASE
Verifique se ainda está lá:
el@apollo:~$ env | grep DUALCASE
el@apollo:~$
A variável de ambiente exportada DUALCASE é excluída.
Redefina todas as variáveis locais de volta ao padrão no 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
O comando limpou todas as variáveis locais, mas não as variáveis de ambiente.
Redefina todas as variáveis de ambiente para o padrão no 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
O comando limpou todas as variáveis de ambiente para o padrão no login.
echo $VARIABLE
seja melhor que env | grep VARIABLE
, é mais leve, pois não precisa imprimir todas as variáveis e depois enviar sua saída para outro processo (grep). Além disso, env | VARIABLE
pode capturar mais de uma variável que corresponda ao mesmo padrão. Além disso, echo $VARIABLE
permite completar o nome da variável pressionando <Tab> (se existir, isso também pode ser uma dica do que você quer fazer).
echo $VARIABLE
não informa se a VARIABLE é uma variável de shell (aqui chamada "variável local") ou uma variável de ambiente, que é o ponto principal da explicação.
env -i bash
parece estar criando um subshell (pelo menos em um Mac) que pode ter consequências indesejadas.
env | grep -e '^VARNAME='
.
Como a pergunta original não menciona como a variável foi definida e como cheguei a esta página procurando esta resposta específica, estou adicionando o seguinte:
No shell C (csh / tcsh), existem duas maneiras de definir uma variável de ambiente:
set x = "something"
setenv x "something"
A diferença no comportamento é que as variáveis configuradas com o comando setenv são exportadas automaticamente para subshell enquanto as variáveis configuradas com set não.
Para desarmar um conjunto de variáveis com set , use
unset x
Para desarmar um conjunto de variáveis com setenv , use
unsetenv x
Nota: em todas as opções acima, presumo que o nome da variável seja 'x'.
créditos:
https://www.cyberciti.biz/faq/unix-linux-difference-between-set-and-setenv-c-shell-variable/ https://www.oreilly.com/library/view/solaristm-7- reference / 0130200484 / 0130200484_ch18lev1sec24.html
isso também pode funcionar.
export GNUPLOT_DRIVER_DIR=
env
comando. Pode ser que o aplicativo que usa a variável não faça distinção entre variável de ambiente inexistente e vazia.
export PAGER=
, mas isso apenas desativou a paginação - todas as minhas páginas de manual foram despejadas diretamente no terminal. unset PAGER
fez o truque, revertendo-o para o comportamento padrão.
Conforme mencionado nas respostas acima, unset GNUPLOT_DRIVER_DIR
deve funcionar se você tiver usado export
para definir a variável. Se você o definiu permanentemente ~/.bashrc
ou ~/.zshrc
simplesmente a remoção de lá funcionará.