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$pestiver realmente vazio porque-zrequer 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