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