如何通过终端启动浏览器并打开Mac上的特定网页?

时间:2018-08-11 04:36:22

标签: macos

我正在做一个小型个人项目,在任何地方都找不到答案。我是Mac世界的新手,因此对BSD有0个经验。我只是想做到这一点,以便当满足if语句中的条件时(我知道该怎么做),我的默认浏览器(Firefox)将打开到指定的网页(例如$ var = stackoverflow,打开到stackoverflow.com)

任何帮助表示赞赏!

3 个答案:

答案 0 :(得分:0)

使用open命令,然后用单引号括住浏览器的路径,然后用单引号括住要打开的网站的URL。例子

open '/Applications/Google Chrome.app' 'http://youtube.com'

答案 1 :(得分:0)

open '/Applications/Firefox.app/' 'http://www.du.ac.in'

答案 2 :(得分:0)

其他用户已经通过以下语法暗示了open命令的使用:

open /Path/To/browser.app http://example.com

,对于 Firefox 而言,类似于以下内容:

open /Applications/Firefox.app https://stackoverflow.com

但是,您可以使用 -a 标志对此进行一些简化,该标志使您可以简单地指定要打开的应用程序的名称,如下所示:

open -a Firefox https://stackoverflow.com

此外,由于 Firefox 是您的默认浏览器,因此您可以完全省略该应用程序。网址会在系统的默认浏览器中自动打开:

open https://stackoverflow.com

,在您的情况下,它将在 Firefox 中打开 Stack Overflow 网站,而在我的系统上,它将在 Safari (我的默认浏览器)。

您还可以指定多个URL来一次打开多个网页:

open https://stackoverflow.com https://imdb.com https://youtube.com

在我的系统上,它会在最近处于活动状态的 Safari 窗口的单独标签中打开每个URL。在您的计算机上,它将使用 Firefox 执行类似的操作,具体取决于您是将浏览器设置为在单独的窗口中打开新页面,还是在同一窗口中作为新选项卡打开,等等。


脚本

将此与您的if...then控制语句结合在一起,一个简单的bash脚本可能看起来像这样:

?URL() { [[ -z "${@}" ]] && return 1 \
                         || printf '%s\n' "${@}" \
                          | egrep -ix 'stackoverflow|imdb|youtube' \
                          | printf 'https://%s.com\n' $(cat) \
                          | open $(cat); }

然后,运行?URL stackoverflow将打开 https://stackoverflow.com ,而运行?URL stackoverflow dropbox imdb将打开 https://stackoverflow.com https://imdb.com ,但 不是 https://dropbox.com (因为它不在有效网站列表中)匹配)。