我使用的是 CentOS 5.4。我创建了一个 bash 脚本,在运行任何命令之前会进行一些检查。如果检查失败,它将简单地exit 0
。我遇到的问题是,在我们的服务器上,当调用时,脚本将退出su
或ssh
会话exit 0
。
#!/bin/bash
# check if directory has contents and exit if none
if [ -z "`ls /ebs_raid/import/*.txt 2>/dev/null`" ]; then
echo "ok"
exit 0
fi
输出如下:
[root@ip-10-251-86-31 ebs_raid]# . test.sh
ok
[russ@ip-10-251-86-31 ebs_raid]$
如您所见,我被从 sudo 会话中移除,如果我不在 sudo 会话中,它会将我从 ssh 会话中注销。我不确定我在这里做错了什么,也不知道从哪里开始。
答案1
当您使用.
运行 shell 脚本时,它会在当前 shell 中执行,而不是启动新 shell。输入bash test.sh
以获取您想要的行为。