2010-07-12 99 views
4

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

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

当我运行这个(我对雪豹),我得到三个窗口:第一,该命令foo运行,符合市场预期;但在另外两个,我只是得到一个空的提示。如果我刚刚粘贴了命令,我会在所有三个窗口中看到空的提示;显然终端仍在忙于处理“粘贴”操作。

现在,AppleScript的可能不是这样做的最佳方式,但我真的想写推出一堆终端窗口,为了,并在每个运行一个命令脚本。也许最好的方法是用bash脚本。只要我可以创建一个别名,我很高兴。那么如何做到这一点?

回答

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

,这似乎很好地工作

+0

我第一次运行脚本,第一个实际脚本两个终端窗口冻结,只有第三个终端窗口运行该脚本。第二次,第一次跑了,另外两个窗户冻结了。 (通过“冻结”,我的意思是没有在他们身上执行任何东西,我也无法在其中输入文本,这是我之前遇到的同样的问题。)或许这对我的设置来说有点奇怪。 – 2010-07-14 16:37:20

+0

确认:我评论了我的'.bashrc',一切正常。所以现在我只需要弄清楚那里有什么问题。谢谢! – 2010-07-14 16:38:08