为什么这个告诉命令会启动一个程序?

为什么这个告诉命令会启动一个程序?

以下 applescript 作为我经常使用的较大程序的一部分运行:

on run {viewer, path_to_pdf}
    if viewer is "Skim" then
        display notification "Skim opened: " & viewer & "!!!"
        tell application "Skim"
            revert (documents whose path is path_to_pdf as text)
        end tell
    else if viewer is "TeXShop" then
        display notification "TexShop opened: " & viewer & "!!!"
        tell application "TeXShop"
            tell documents whose path is path_to_pdf as text to refreshpdf
        end tell
    end if
end run

我目前已将查看器设置为在此较大的程序中浏览,因此当此脚本运行时,我会收到通知“Skim 已打开:Skim!!!”并且 skim 会像预期的那样刷新我的 pdf。 但是TeXShop也开了!

我相信这是导致 TeXShop 打开的代码,因为如果我tell application "TeXShop" ... end tell从代码中删除,然后 skim 会按预期刷新,并且 TeXShop没有打开。我很困惑,因为我从来没有收到 TeXShop 正在打开的显示通知。此脚本每次运行只调用一次,并且根据通知,它会被传递“Skim”作为参数,因此该代码块不会被执行……但它仍然对系统有影响??

谁能解释一下这里发生了什么?

相关内容