You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过Bash命令打开新的Safari窗口并指定初始标签页URL

如何通过Bash命令打开新的Safari窗口并指定初始标签页URL

我完全懂你的困扰——用open -a Safari这类命令总是默认跳转到已打开的Safari窗口,加了URL也只是在现有窗口里开新标签,根本达不到你要的「新开窗口+指定初始URL」的效果。别慌,给你分享两个在Bash里就能实现的靠谱方案:

  • 方法一:用AppleScript配合Bash调用(推荐,稳定灵活)
    虽然你提到担心AppleScript的"寿命问题",但目前macOS上还没有纯Bash原生的替代方案,而且这个方法是最直接且稳定的。直接执行这条命令就能搞定:

    osascript -e 'tell application "Safari" to make new document with properties {URL:"https://www.google.com"}'
    

    原理很简单:这条命令直接让Safari创建一个新的「文档」(也就是新窗口),同时把初始标签页的URL设为你指定的地址——不管当前有没有打开的Safari窗口,都会强制新开一个。

    如果想更灵活,比如把URL做成变量方便批量处理,可以这么写(注意引号的转义):

    TARGET_URL="https://www.github.com"
    osascript -e "tell application \"Safari\" to make new document with properties {URL:\"$TARGET_URL\"}"
    
  • 方法二:临时关闭Safari再打开(局限性大,谨慎使用)
    如果你实在不想碰AppleScript,还有个取巧的办法——先关闭所有Safari窗口,再用open命令打开。但要注意,这个操作会关闭你当前所有的Safari窗口,只适合你本来就没在使用Safari的场景:

    osascript -e 'quit app "Safari"' && sleep 1 && open -a Safari https://www.google.com
    

    这里加sleep 1是给系统留一点时间确保Safari完全退出,避免出现还没关干净就执行打开命令、依然复用旧窗口的情况。

    顺带解释下你之前的尝试为什么没用:macOS的open工具本身就是设计成优先复用已有应用实例的,所以默认不会主动新开窗口,这是它的原生行为,不是你操作错了~

备注:内容来源于stack exchange,提问作者sobbingDev

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.15 15:53:19