shell AppleScript do脚本始终回显命令

ajsxfq5m  于 2023-01-17  发布在  Shell
关注(0)|答案(1)|浏览(138)
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逻辑的好例子,输出看起来很糟糕。现在,虽然你可以使用set +v bash命令关闭echo,但假设echo foo是一个很长的命令,清除屏幕会导致 Flink 。我想知道如何启用echo off或set +v而不会导致一开始的echo?

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

编辑2:我试着在clear中使用bash中的set +v,但是没有得到维护

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
qyyhg6bp

qyyhg6bp1#

我不确定我是否确切地理解了你的问题/需要,但从我所能告诉我的来看,我有相反的需要,所以,阅读你的问题解决了我的问题。

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

输出回显到终端

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

没有输出回显到终端

相关问题