Não houve muito erro com o seu script:
-
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. -
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