【问题标题】:Use one terminal instance for many do shell scripts?对许多 shell 脚本使用一个终端实例?
【发布时间】:2015-05-13 02:12:01
【问题描述】:

所以,我需要制作一个 AppleScript 来通过 ssh 连接到我的 mint 无头服务器。我不需要传输文件,只需运行命令。问题是,当我使用一个 do shell 脚本 ssh 时,它与其他实例位于不同的实例中。另外,如果我不必使用击键并将终端保持在前面,则可以加分。

编辑:如果你们能告诉我为什么你不赞成这篇文章,那会很有帮助。

【问题讨论】:

    标签: shell ssh applescript


    【解决方案1】:

    不确定这是否是您想要的,但使用 Terminal.app 您可以做到这一点:

    set shellScript to "echo" & space & quoted form of "Test Message"
    
     tell application "Terminal"
        activate
        try
            if (exists tab 1 of window 1) then
                do script with command shellScript in front window
            else
                do script with command shellScript
            end if
        on error
            beep
        end try
    end tell
    

    上面的代码在前窗口或没有打开窗口时在新窗口中执行shellScript。希望对您有所帮助。

    添加
    我认为hideapplication 没有AppleScript 脚本命令。 使用System Events,我们可以执行keystroke,所以让我们执行隐藏应用程序的cmd-h

    tell application "System Events"
        tell application process "Terminal" to set frontmost to true
        -- delay 0.25 -- in case it does not work
        keystroke "h" using command down
    end tell
    

    我不知道 Terminal.app 在隐藏和执行脚本时会如何表现,但你会发现的。

    或者将终端窗口放在另一个 Finder 空间中。

    【讨论】:

    • 好的,这确实完成了我想要的第一部分,但是有什么办法可以隐藏终端吗?
    • 我为此添加了一些东西,但它可能不是那么好。另外,请查看终端的首选项,也许您可​​以编写适合您需求的配置文件。
    • 好的,但我一直在寻找一种方法来隐藏终端,使其在运行命令时不可见。
    • 当您运行隐藏代码时,它肯定会隐藏应用程序,但我认为当您执行 shell 脚本时它会再次可见。也许您可以使用 osascript 在终端中执行隐藏命令。
    • (...当然,如果您复制了整个脚本,请删除“tell app...”之后的“activate”)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-01
    • 1970-01-01
    • 2014-10-30
    • 2017-01-17
    • 1970-01-01
    • 2013-04-18
    相关资源
    最近更新 更多