[英]Open an .html file with default browser using Bash on Mac
所以,这就是我需要的:
假设我有一个index.html
文件。
如何告诉终端使用默认浏览器打开它?
(使用 AppleScript、BASH、...?)
从包含 index.html 的目录中,尝试...
open ./index.html
open 命令打开一个文件(或目录,或 URL)。 open 包含在 MacOSx 中。 可以使用找到细节和选项
man open
注意:默认应用程序是通过 LaunchServices 确定的。
您可以使用带有 -a 标志的打开命令在 Chrome(或任何目标应用程序)中打开文件或位置:
open -a "Google Chrome" index.html
这也适用于 URL,即 open -a "Google Chrome" http://www.apple.com 。
---> 我在@stack exchange找到了这个答案,感谢用户“robmathers”
实际上,这并不像看起来那么简单。 正如其他答案所建议的那样,OS X 提供了open
实用程序来启动与 shell 中的文件类型匹配的应用程序。但是,对于 HTML 文件,这是在 Launch Services 注册的文件类型为public.html
的应用程序,它可以但不一定是你的默认浏览器(我认为它是在原始安装上) - 或者任何注册为能够编辑 HTML 的编辑器(在开发系统上并不罕见)。 虽然默认浏览器已注册URL 协议http
无论如何,但无法访问该协议处理程序以使用open
打开文件。
使问题复杂化的是,尽管处理程序存储在com.apple.LaunchServices.plist
首选项中,可通过defaults
命令访问,但信息结构(具有两个相同级别条目的字典,一个表示协议,一个表示处理程序)使得用defaults
解析很重要。
好消息是有人已经解决了这个问题:HAMsoft Engineering 提供了DefaultApplication shell 实用程序。 下载它并将它保存在 shell 可以访问的地方(通常是/usr/local/bin
,尽管它不在某些 OS X 版本的 shell 的默认路径中——检查/etc/paths
的内容以确保) . 如果可用,以下命令将在默认浏览器中打开一个 HTML 文件,否则可能会注册任何编辑器/查看器:
open -a "$(/usr/local/bin/DefaultApplication -url 'http:')" "/path/to/your/document.html"
要在默认浏览器中打开 filename.html,请使用:
open filename.html
open是一个很好的命令,也是Mac OS的一个特性,让我爱上它更深了。 它会自动选择合适的默认应用程序来打开文件。
如果你想在你想要的应用程序中打开一个文件而不是默认:
open -a /Applications/Google\ Chrome.app filename.html
Google 之后的反斜杠\
用于转义空格字符。
或者你可以写:
open -a "/Applications/Google Chrome.app" filename.html
希望这对你(我知道我来晚了)和其他人有帮助。!!!
您还可以使用 Perl 获取默认浏览器: open http://example.com -a "$(VERSIONER_PERL_PREFER_32_BIT=true perl -MMac::Inte.netConfig -le 'print +(GetICHelper "http")[1]')"
。
通过将文件放在浏览器命令之后,我设法用 chrome 打开了 html 文件。 所以,
google-chrome-stable ./index.html
虽然我不确定对默认浏览器的调用是什么,但如果你知道它,你可以将它作为别名放在你的.bashrc 中,然后从那时起,使用你称之为别名的任何内容,加上文件。
goo ./index.html
只是我的经验,第一反应
在终端中,您可以运行 open index.html
一个简单的方法是firefox ./index.html
这适用于 linux,也应该适用于 mac
#!/bin/sh
# open a html file in default browser, not text editor,
# when text editor is set as default app for html files
url=file:///path/to/file.html
protocol=http
app=$(xdg-mime query default x-scheme-handler/$protocol)
# example: chromium-browser.desktop
[ -z "$app" ] && {
echo "error: xdg-mime could not find default app for protocol $protocol"
exit 1
}
app=$(basename $app .desktop)
gtk-launch $app "$url"
理想情况下我可以说
xdg-open http+file:///path/to/file.html
但这不起作用
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.