我想要做到的是像在这个this question描述的。基本上使用AppleScript将命令发送到Terminal.app。使用AppleScript发送命令和字符串到Terminal.app回声关
但是有这种行为,我不想要的:使用do script
指令发送的每个命令都将被终端。我目前正在将AppleScript与Cocoa集成在一起,并且有时候软件会向终端发送密码等敏感信息。
是否有某种方式来禁用此行为,如@echo off
指令在DOS批处理文件?
编辑
为了澄清我的问题,我会阐述更多。假设我们有一个AppleScript,例如这是一个:
tell application "Terminal"
set currentTab to do script "login"
do script "username" in currentTab
do script "password" in currentTab
end tell
我注意到,如果终端应用程序已经运行,有或没有打开的任何终端窗口,在do script
指令的命令将它送入之前呼应贝壳。为了说明在终端上面的脚本的结果:
Last login: Tue 5 Apr hh:mm:ss on ttys001
login <--\
username <----unwanted echoes
password <--/
<machine>:~ <user>$ login
username: username
password: ****
... (interactive Terminal session)
然而这不,如果Terminal.app不是在脚本执行运行发生。
我想从可可应用程序脚本ssh登录。这就是为什么我需要Terminal.app。 – avee 2011-04-05 03:38:55
@avee:如果你不使用Expect,你可能会重新实现一些功能:“等待”登录:“;发送用户名;等待“密码:”;发送密码; ...“ – 2011-04-05 06:23:02
@克里斯约翰森@尼古拉斯莱利:谢谢,我想我会看看希望 – avee 2011-04-05 06:41:28