在下面的脚本中,当执行if语句中的代码时,用户将从bash注销。为什么会这样呢?
#!/bin/sh
if [ -z $1 ]; then
echo "1"
read w
exit 1
fi
if [ "$#" -gt "1" ]; then
echo "1"
read w
exit 2
fi
export PTSUSER=$1.
<some more code>发布于 2012-09-21 18:22:53
如果脚本是源的,并且命中任何一个if块,那么是的,当前用户的bash shell将被退出,并且用户将被注销。这是因为采购脚本将使用当前用户的bash shell来执行该脚本。
$ . ./script.sh另一方面,如果它在一个新的bash shell实例中运行,那么这种情况就不会发生,一旦在shell中(在两个if块中)执行了其中一个exit命令,bash实例就会退出。
$ bash ./script.sh发布于 2012-09-21 18:20:30
这取决于您如何调用脚本。exit会导致当前shell退出。如果您从登录后启动的shell中注销脚本,即在当前shell的上下文中运行该脚本,则exit将注销用户。
https://stackoverflow.com/questions/12528605
复制相似问题