如何在运行shell脚本后让Mac".command"文件自动退出?

LOl*_*ffe 21 macos shell scripting command

在我的shell脚本中,我的最后一行是:

...
echo "$l" done
done

exit
Run Code Online (Sandbox Code Playgroud)

我将终端首选项设置为"当shell退出时:关闭窗口".在所有其他情况下,当我在"终端"中键入"exit"或"logout"时,窗口关闭,但对于此".command"文件(我可以双击我的shell脚本文件,脚本运行),关闭窗口,而文件的代码显示"退出",屏幕上显示的是:

...
$l done
logout

[Process completed]
Run Code Online (Sandbox Code Playgroud)

......窗户保持打开状态.有谁知道如何运行shell脚本,然后在完成时自动退出终端窗口?

谢谢!

LOl*_*ffe 25

我终于能够找到答案.与cobbal的答案类似,它调用AppleScript,但由于它是我打开的唯一窗口,并且我想将我的脚本作为一个快速的开启和关闭操作运行,这种更粗野的方法对我来说非常有用.

在".command"脚本本身中,"...最后将这一行添加到脚本中"

osascript -e 'tell application "Terminal" to quit' &
exit
Run Code Online (Sandbox Code Playgroud)

消息来源:http: //forums.macosxhints.com/archive/index.php/t-2538.html

  • 但即使它们被打开用于其他目的,这也会关闭所有终端窗口. (5认同)

小智 19

这对我来说非常有用..它只是关闭了执行窗口,让其他终端窗口打开

只需打开终端并转到终端>首选项>设置>外壳:>当shell退出时: - >如果shell干净地退出则关闭

然后只需添加退出; 在你的文件的末尾.


poo*_*dro 5

使用上面提到的“终端 > 首选项 > 设置 > Shell: > 当 shell 退出时: -> 如果 shell 干净地退出则关闭”选项,但将

exit 0
Run Code Online (Sandbox Code Playgroud)

作为命令文件的最后一行。这确保了脚本确实“干净地退出” - 否则,如果前一个命令没有返回成功,则窗口将不会关闭。