检查终端当前选项卡中是否有正在运行的进程

时间:2013-07-17 18:46:03

标签: shell applescript

我有一个脚本可以打开与插入的设备一样多的终端选项卡,然后它会在这些设备上运行测试。我想在测试完成后清理所有终端选项卡。我在后台运行一些东西,我不知道每个进程何时完成。

如何查看终端当前标签中是否有进程正在运行?

我计划在AppleScript中执行命令W,以便在终端的每个选项卡都没有正在运行的进程后终止每个终端命令。

谢谢!

3 个答案:

答案 0 :(得分:2)

一个简单的解决方案是将您在终端中运行的每个命令都添加到“;退出”(不带引号)。

例如,如果您的某个命令是“ls”,则将其更改为“ls; exit”。

不幸的是,如果你想让终端窗口向上看以显示正在显示的结果,这不起作用。但是,这可以通过将第一个命令的结果输出到某个文件来解决。

再次使用ls的示例,您可以运行“ls>> testfile.txt; exit”将ls的结果输出到文件,然后在终止窗口完成执行后关闭它。

答案 1 :(得分:2)

如果您使用AppleScript,则可以查看繁忙属性:

tell application "Terminal"
    repeat with t in tabs of windows
        if busy of t is false then
            do script "exit" in t
        end if
    end repeat
end tell

exit如果您设置了“首选项>设置> Shell>当shell退出”至“关闭窗口”时,

{{1}}会关闭标签。

答案 2 :(得分:1)

您可以使用“作业”来检查后台是否有任何进程在运行。