如何通过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
相关产品推荐
相关产品推荐

