mirror of
https://github.com/nvm-sh/nvm.git
synced 2026-10-11 00:00:13 +08:00
[Fix] nvm: do not change or export the caller's IFS
`IFS=... nvm "$@"` is a prefix assignment to a function call, which bash's POSIX mode (macOS `/bin/sh`) keeps after the call returns, and exports.
This commit is contained in:
@@ -3672,14 +3672,18 @@ nvm() {
|
||||
if [ "${-#*e}" != "$-" ]; then
|
||||
set +e
|
||||
local EXIT_CODE
|
||||
IFS="${DEFAULT_IFS}" nvm "$@"
|
||||
local IFS
|
||||
IFS="${DEFAULT_IFS}"
|
||||
nvm "$@"
|
||||
EXIT_CODE="$?"
|
||||
set -e
|
||||
return "$EXIT_CODE"
|
||||
elif [ "${-#*a}" != "$-" ]; then
|
||||
set +a
|
||||
local EXIT_CODE
|
||||
IFS="${DEFAULT_IFS}" nvm "$@"
|
||||
local IFS
|
||||
IFS="${DEFAULT_IFS}"
|
||||
nvm "$@"
|
||||
EXIT_CODE="$?"
|
||||
set -a
|
||||
return "$EXIT_CODE"
|
||||
@@ -3687,13 +3691,17 @@ nvm() {
|
||||
# shellcheck disable=SC3041
|
||||
set +E
|
||||
local EXIT_CODE
|
||||
IFS="${DEFAULT_IFS}" nvm "$@"
|
||||
local IFS
|
||||
IFS="${DEFAULT_IFS}"
|
||||
nvm "$@"
|
||||
EXIT_CODE="$?"
|
||||
# shellcheck disable=SC3041
|
||||
set -E
|
||||
return "$EXIT_CODE"
|
||||
elif [ "${IFS}" != "${DEFAULT_IFS}" ]; then
|
||||
IFS="${DEFAULT_IFS}" nvm "$@"
|
||||
local IFS
|
||||
IFS="${DEFAULT_IFS}"
|
||||
nvm "$@"
|
||||
return "$?"
|
||||
fi
|
||||
|
||||
|
||||
Reference in New Issue
Block a user