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_DIRvariá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_DIRvariável de ambiente. Como posso conseguir isso?
Respostas:
unset é o comando que você está procurando.
unset GNUPLOT_DRIVER_DIR
unexportde fazer T="$MYVAR"; unset MYVAR; MYVAR="$T"; unset T?
declare +x MYVARremover a exportação, mas manter o valor no shell atual.
export -n MYWARfunciona 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 $VARIABLEseja 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 | VARIABLEpode capturar mais de uma variável que corresponda ao mesmo padrão. Além disso, echo $VARIABLEpermite completar o nome da variável pressionando <Tab> (se existir, isso também pode ser uma dica do que você quer fazer).
echo $VARIABLEnã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 bashparece 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=
envcomando. 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 PAGERfez o truque, revertendo-o para o comportamento padrão.
Conforme mencionado nas respostas acima, unset GNUPLOT_DRIVER_DIRdeve funcionar se você tiver usado exportpara definir a variável. Se você o definiu permanentemente ~/.bashrcou ~/.zshrcsimplesmente a remoção de lá funcionará.