编写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 结束了当前的进程。