OSX:为什么在终端中手动编写时退出工作,而不是从终端运行的shell脚本?

时间:2015-01-01 12:47:52

标签: macos bash shell terminal exit

osx中的这个bash脚本不会退出脚本。我已经更改了设置(如建议的here,以便在终端中写入退出关闭窗口,并且如果我在终端中写入,我已经检查写入退出是否会关闭终端窗口,这可能是什么原因造成的这个?我在更改设置后重新启动了终端和我的mac,看看是否解决了这个问题。但是在位置nr 1或脚本末尾退出是不行的。

#!/bin/bash
PATH=/opt/local/bin:/opt/local/sbin:$PATH
read -p "What do you want to do?"
    if test "$pass" = "f"
    then
        sh ~/f.sh
        exit # nr 1
    fi
     if test "$pass" = "s"
     then
         sh ~/s.sh
         exit # nr 1
     fi
     exit # nr 2

1 个答案:

答案 0 :(得分:1)

假设你的意思是:

$ exit

您的终端退出。

但是当你跑步时

$ ./script.sh

您的终端没有退出。

答案是您的脚本正在自己的shell进程中运行,因此当它退出时,它不会从终端中运行的shell退出。

如果您使用

$ . script.sh

然后您将在当前shell进程中运行该脚本,因此exit将退出正在运行的shell并导致终端退出。