编写shell脚本的时候如何退出或者exit不退出

shell 中有个命令 exit 用来结束当前shell ,并且退出。如果程序出现了错误需要退出可以用 exit。

exit 退出的是当前的shell

如果你用了 putty 链接了服务器,执行 exit 后你会发现 ,你已经退出了 putty

shell 是什么

Shell 作为一种用户接口,它实际上是一个能够解释和分析用户键盘输入,执行输入中的命 令,然后返回结果的一个解释程序(Interpreter,例如在 linux 下比较常用的 Bash ),我 们可以通过下面的命令查看当前的 Shell

echo $SHELL

exit 是一定要退出当前的shell, 不过可以不退出shell,如果父shell存在。

# 查看当前的进程ID
echo $$
833

# 执行 bash
bash
echo $$
3579 
# 可以看到执行 bash 后当前的 bash 的进程ID 是  3579

# 查看详情
 pstree | grep bash
        |-sshd---sshd---bash---bash-+-grep
# 可以看到有两个bash

运行一个脚本,退出当前的shell (现在有两个shell)

cat b.sh
#! /bin/bash

echo "当前进程id"  $$
echo "当前父进程ID"  $PPID
exit 0;

运行的结果

[root@wpcode.cn ~]# . b.sh
当前进程id 3579
当前父进程ID 833
[root@wpcode.cn ~]# echo $$
833

可以看到 执行 . b.sh 后 ,通过 exit 结束了当前的进程。