Parece que há vários erros aqui. Primeiro, suas expressões de atribuição de variáveis não devem estar dentro de backticks. Os backticks são uma sintaxe (um tanto datada) para a substituição de comandos . Acho que o que você estava procurando era aspas simples . As variáveis de cotação são feitas para preservar literais de string e evitar substituição de parâmetros .
Além disso, você não pode usar o caractere de hífen em seus nomes de variáveis. Aqui está um trecho do Manual do bash, capítulo 2: definições :
name
A word consisting solely of letters, numbers, and underscores, and beginning with a letter or underscore. Names are used as shell variable and function names. Also referred to as an identifier.
Veja também as seguintes postagens para mais informações:
Veja a aparência dos seus scripts depois de remover os backticks e os hifens:
#!/bin/bash
# set_proxy.sh
export HTTP_PROXY='http://nick:nick@proxy.***.***.com:****'
export HTTPS_PROXY='http://nick:nick@proxy.***.***.com:****'
export http_proxy='http://nick:nick@proxy.***.***.com:****'
export https_proxy='http://nick:nick@proxy.***.***.com:****'
e:
#!/bin/bash
# unset_proxy.sh
unset HTTP_PROXY
unset HTTPS_PROXY
unset http_proxy
unset https_proxy
Uma observação final: a execução de um script faz com que ele seja executado em um subshell, portanto, as variáveis de ambiente não afetarão sua sessão de shell ativa. Veja, por exemplo, o seguinte post:
A resposta curta é que você não pode. Portanto, se você quiser que seus scripts modifiquem seu ambiente atual de shell, será necessário "procurá-los", por exemplo:
source set_proxy.sh
source unset_proxy.sh