Handle interactive & login shells, SHLVL checks, and better message.

This commit is contained in:
Mike Meyer 2015-08-06 11:24:32 -05:00
parent 6334047ebd
commit 239d2a28e1

View file

@ -1,7 +1,18 @@
function suspend -d "Suspend the current shell so long as it is not a login shell."
if status --is-login
echo cannot suspend login shell >&2
# If the user hasn't set it, make sure our test level has a value
if not set -q suspend_minimum_SHLVL
set -g suspend_minimum_SHLVL 3
end
function suspend -d "Suspend the current shell."
if begin contains -- $argv --force
or not status --is-interactive
or begin test $SHLVL -ge $suspend_minimum_SHLVL
and not status --is-login
end
end
kill -STOP %self
else
kill -STOP %self
echo 2>&1 Cannot suspend login shell or SHLVL to low, use --force to force.
end
end