我正在使用AppleScript启动一个快速而简单的shell脚本:
tell application "Terminal"
activate
do script "$(" & quoted form of MyScriptPath & ")"
end tell
正确启动终端窗口并输入我期望的内容:
~$ $('/my script path/myscript.sh')
但是,在第一次评估/调用脚本时,似乎输出到STDOUT(通过echo)的任何内容都被评估为好像它在$()内:
#!/bin/sh
echo "foobar"
产生
-bash: foobar: command not found
我在远程和广泛搜索并且在将脚本位置发送到终端之前没有找到合适的方法来逃避路径中的空格(而不是在AppleScript中使用“引用形式”),但我更喜欢那。我正在使用“do script”而不是“do shell script”,因为在Terminal中启动的脚本是交互式的,需要集中注意力。
如何通过$()调用脚本时回显STDOUT?
答案 0 :(得分:1)
您不需要$(...)
运行命令,只是将该命令的输出包含在另一个字符串中。你只需要
tell application "Terminal"
activate
do script "/my script path/myscript.sh"
end tell