繁体   English   中英

AppleScript 执行脚本总是回显命令

[英]AppleScript do script always echos command

on run argv
    set scpt to first item of argv
    tell application "Terminal"
        do script "bash " & scpt
        activate
    end tell
end run

问题是无论我告诉它执行什么脚本命令,它总是首先在终端中打印该命令。 我不想要这种回声行为,如何使用 AppleScript 禁用它。

编辑 1:这是纯 AppleScript 逻辑的一个很好的例子,output 看起来很糟糕。 现在,虽然您可以执行 set +v bash 命令来关闭 echo,但假设echo foo是一个非常长的命令,清除屏幕会导致闪烁。 我在问如何启用 echo off 或set +v而不会导致回声开始?

tell application "Terminal"
    set a to do script ""
    activate
    do script "echo foo" in a
    do script "echo ardvark" in a
end tell

编辑 2:我尝试使用来自 bash 的 set +v 和 clear 并且它没有被维护

tell application "Terminal"
    set a to do script ""
    activate
    do script "bash -c \"set +v\" ; clear" in a
    do script "echo foo" in a
    do script "echo hello world" in a
end tell

不确定我是否完全理解您的问题/需求,但据我所知,我有相反的需求,因此,阅读您的问题解决了我的问题。

# launch application
tell application "Terminal"
    set a to do script "/path/script.sh"
    activate
end tell

Output 回显到终端

# launch application
tell application "Terminal"
    activate
    do shell script "/path/script.sh"
end tell

没有 output 回显到终端

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM