쉘 스크립트를 통해 프록시를 동적으로 설정 및 설정 해제하는 방법은 무엇입니까?

쉘 스크립트를 통해 프록시를 동적으로 설정 및 설정 해제하는 방법은 무엇입니까?
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

관련 정보