使用单个bash行在多个终端窗口中运行多个命令

时间:2010-07-12 21:12:03

标签: macos bash terminal applescript

这是一个有趣的问题:如果终端“忙”,使用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脚本。只要我能为它创建一个别名,我很高兴。那怎么做呢?

1 个答案:

答案 0 :(得分:2)

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

我修改了你的代码以便测试它

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"';

这似乎工作正常