我正在做一个小型个人项目,在任何地方都找不到答案。我是 Mac 世界的新手,所以对 BSD 的经验为 0。我只是想让它在满足 if 语句中的条件时(我知道该部分(我的默认浏览器 (Firefox( 将打开到指定的网页(例如 $var = 堆栈溢出,打开 stackoverflow.com(
任何帮助表示赞赏!
其他用户已经使用以下语法暗示使用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是您的默认浏览器,因此您可以完全省略该应用程序。 URL 会自动在系统的默认浏览器中打开:
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 '%sn' "${@}"
| egrep -ix 'stackoverflow|imdb|youtube'
| printf 'https://%s.comn' $(cat)
| open $(cat); }
然后,运行?URL stackoverflow
将打开https://stackoverflow.com
,而运行?URL stackoverflow dropbox imdb
将打开https://stackoverflow.com
并https://imdb.com
,但不会打开https://dropbox.com
(因为它不在有效网站匹配列表中(。
使用open
命令,后跟单引号中的浏览器路径,后跟要打开的站点的 URL(用单引号引起来(。 示例
open '/Applications/Google Chrome.app' 'http://youtube.com'
open '/Applications/Firefox.app/' 'http://www.du.ac.in'