终端在"退出"之后冻结bash脚本中的命令

时间:2016-09-09 21:16:22

标签: bash macos shell terminal

我在Mac上运行终端版本2.6.1。 我正在编写一个bash脚本,如果满足某个条件,我想退出脚本。

我用这个命令做到了:

exit 1

完成后,脚本退出,我在终端上看到了这个:

Saving session...
...copying shared history...
...saving history...truncating history files...
...completed.

[Process completed]

之后,我的终端被冻结了,我再也无法做任何事了。

有没有办法否定每次脚本退出时都必须打开一个新终端?

我正在从我的终端运行脚本,如下所示:

. script.sh

1 个答案:

答案 0 :(得分:3)

不要使用

. script.sh

运行脚本。这将在您在终端会话中使用的相同交互式shell中运行脚本,并且当脚本使用exit时,它也会退出交互式shell。

使用此行启动脚本,告诉操作系统使用bash执行脚本:

#!/bin/bash

使用以下命令授予执行权限:

chmod 755 script.sh

然后用

运行它
./script.sh

这会在自己的进程中运行脚本。