我正在使用 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”,因为在终端中启动的脚本是交互式的,需要集中注意力。
通过 $( ) 调用脚本时如何回显到 STDOUT?