繁体   English   中英

applescript 中的 tell 命令似乎是异步执行的

[英]tell command in applescript seems to be executed asynchronously

我有以下脚本:

tell application "Terminal"
    do script "docker-compose up -d"
    activate
end tell

tell application "Terminal"
    do script "until $(curl --output /dev/null --silent --head --fail http://localhost:1234); do printf '.'; sleep 5; done; exit 0"
end tell

tell application "Safari"
    open location "http://localhost:1234/mypage"
end tell

我的目标是在服务启动并运行后打开 web 页面,但之前它正在打开。 有谁知道我做错了什么以及如何解决?

谢谢您的帮助

由于您似乎希望它是非交互式的,因此您可能应该避免编写 Terminal.app 脚本,而只需使用 AppleScript 的do shell script命令。 尝试这个:

do shell script "docker-compose up -d; until $(curl --output /dev/null --silent --head --fail http://localhost:1234)"

tell application "Safari"
    open location "http://localhost:1234/mypage"
end tell

do shell script应该等到调用的命令完成后才要求 Safari 打开页面。

暂无
暂无

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

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