【问题标题】:Run multiple commands in multiple Terminal windows with a single bash line使用单个 bash 行在多个终端窗口中运行多个命令
【发布时间】:2011-03-15 00:32:43
【问题描述】:

这是一个有趣的问题:如果终端“忙”,则使用AppleScript method 在终端窗口中启动新命令会失败;更准确地说,它将打开一个新窗口但无法运行该命令。例如,尝试将这一行复制+粘贴到:

osascript -e 'tell application "Terminal" to do script "foo"'; osascript -e 'tell application "Terminal" to do script "bar"'; osascript -e 'tell application "Terminal" to do script "baz"';

当我运行它时(我在 Snow Leopard 上),我得到三个窗口:在第一个窗口中,命令 foo 按预期运行;但在另外两个中,我只是得到一个空提示。如果我刚刚粘贴了命令,我会在所有三个窗口中得到空提示;显然终端仍在忙于处理“粘贴”操作。

现在,AppleScript 可能不是执行此操作的最佳方式,但我真的想编写一个脚本,按顺序启动一堆终端窗口,并在每个窗口中运行一个命令。也许最好的方法是使用 bash 脚本。只要我可以为其创建别名,我就很高兴。那么如何做到这一点呢?

【问题讨论】:

    标签: macos bash terminal applescript


    【解决方案1】:

    你正在运行的实际脚本是什么

    我修改了你的代码来测试它

    osascript -e 'tell application "Terminal" to do script "cd Desktop"'; osascript -e 'tell application "Terminal" to do script "cd .."'; osascript -e 'tell application "Terminal" to do script "ls"';
    

    这似乎工作正常

    【讨论】:

    • 我第一次运行脚本时,前两个终端窗口冻结,只有第三个运行脚本。第二次,第一个跑了,另外两个窗户都冻住了。 (“冻结”是指其中没有执行任何操作,我无法在其中输入文本,这与我之前遇到的问题相同。)所以也许我的设置有些奇怪。
    • 确认:我注释掉了我的.bashrc,一切正常。所以现在我只需要弄清楚是什么导致了那里的问题。谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-06
    • 1970-01-01
    • 1970-01-01
    • 2020-12-22
    • 1970-01-01
    • 1970-01-01
    • 2015-05-11
    相关资源
    最近更新 更多