Bash 脚本退出 su 或 ssh 会话,而不是脚本

Bash 脚本退出 su 或 ssh 会话,而不是脚本

我使用的是 CentOS 5.4。我创建了一个 bash 脚本,在运行任何命令之前会进行一些检查。如果检查失败,它将简单地exit 0。我遇到的问题是,在我们的服务器上,当调用时,脚本将退出sussh会话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以获取您想要的行为。

相关内容