Bashスクリプトの上部には次の内容があります。
if [[ "$npm_registry_override" != "yes" ]]; then
echo "refusing to source npm.sh script because env is not set."
exit 0;
fi
問題は、環境変数を取得したときに環境変数が設定されていないときに端末ウィンドウが閉じられることです。
私がこうすれば:
if [[ "$npm_registry_override" != "yes" ]]; then
echo "refusing to source npm.sh script because env is not set."
return 0;
fi
bash関数内でなければ、返すことができないというエラー/警告が表示されます。
それで、あなたは何をするつもりですか?私が考えることができる唯一のことは、スクリプト全体をifステートメントでラップすることです。
ベストアンサー1
これは私が見た行動ではありませんbash
。私のバージョン(4.4.12)にも文書化されていません。
$ cat <<'x' >x.sh
echo "This is x.sh"
return 0
x
$ source x.sh
This is x.sh
$
マニュアルページではreturn
動詞について説明します。
return [n]
- [...]return
関数の外部で使用されますが、.
(source
)コマンドでスクリプトを実行している間、シェルはスクリプトの実行を停止し、次のようにn
スクリプト内で実行された最後のコマンドの終了ステータスを返します。 。