【发布时间】:2011-07-28 15:35:21
【问题描述】:
我想要完成的事情类似于this question 中描述的事情。基本上是使用 AppleScript 向 Terminal.app 发送命令。
但是我不希望出现这种行为:使用do script 指令发送的每个命令都会回显到终端。我目前正在将 AppleScript 与 Cocoa 集成,有时该软件会将密码等敏感信息发送到终端。
有没有办法禁用这种行为,比如 DOS 批处理文件中的@echo off 指令?
编辑
为了澄清我的问题,我将详细说明。假设我们有一个像这样的 AppleScript:
tell application "Terminal"
set currentTab to do script "login"
do script "username" in currentTab
do script "password" in currentTab
end tell
我注意到,如果终端应用程序已经在运行,无论是否打开任何终端窗口,do script 指令中的命令都会在它被馈送到 shell 之前被回显。在终端中说明上述脚本的结果:
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 在脚本执行时没有运行,则不会发生这种情况。
【问题讨论】:
标签: cocoa macos terminal applescript