如何通过shell脚本动态设置和取消设置代理?

如何通过shell脚本动态设置和取消设置代理?
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

我已经尝试过但没有得到结果

答案1

您的脚本没有太大错误:

  1. 将变量设置为命令的输出(即命令替换) 需要$()围绕命令。出于同样的目的,我故意忽略过时的反引号的存在,它们以多种方式被破坏。

  2. 使用变量时引用它们。

    例如,如果实际上是空的,if [ -z $p ]则不带引号肯定是语法错误,因为$p-z 需要一个论点。 if [ -z "$p" ]永远不会导致错误,因为即使是空字符串也是一个参数。

这是一个最低限度的固定版本(也删除了多余的分号):

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

相关内容