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
您的脚本没有太大错误:
将变量设置为命令的输出(即命令替换) 需要
$()
围绕命令。出于同样的目的,我故意忽略过时的反引号的存在,它们以多种方式被破坏。使用变量时引用它们。
例如,如果实际上是空的,
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