como definir e desanexar proxy dinamicamente através do script de shell?

0
p=sudo npm config get proxy;
echo "$p";
if [ -z $p ] 
 then
  echo "delete";
  sudo npm config delete proxy http://xxx.xx.xxx.xxx:8085
 else 
 echo "set";
  sudo npm config set proxy http://xxx.xx.xxx.xxx:8085
fi

Eu tentei isso, mas não obtive resultado

    
por yogesh agrawal 23.01.2018 / 14:34

1 resposta

4

Não houve muito erro com o seu script:

  1. configurar uma variável para a saída de um comando (ou seja, Substituição de Comando ) precisa de $() em torno do comando. Eu estou deliberadamente ignorando a existência de backticks obsoletos para o mesmo propósito, eles estão quebrados de várias maneiras.

  2. cite suas variáveis quando as usar.

    por exemplo. if [ -z $p ] sem aspas é garantido como um erro de sintaxe se $p estiver realmente vazio porque -z requer um argumento. if [ -z "$p" ] nunca causará um erro porque até mesmo uma string vazia é um argumento.

Aqui está uma versão minimamente fixa (também com pontos-e-vírgulas supérfluos removidos):

p="$(sudo npm config get proxy)"
echo "$p"
if [ -z "$p" ] ; then
  echo "delete"
  sudo npm config delete proxy http://xxx.xx.xxx.xxx:8085
else 
  echo "set"
  sudo npm config set proxy http://xxx.xx.xxx.xxx:8085
fi
    
por 23.01.2018 / 14:43