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