用于打开 URL 的 Shell 脚本

Posted

技术标签:

【中文标题】用于打开 URL 的 Shell 脚本【英文标题】:Shell script to open a URL 【发布时间】:2016-11-03 23:54:30 【问题描述】:

如何编写一个简单的 shell 脚本(比如 script.sh),以便在执行时将 URL 作为参数传递?

我希望浏览器从在该 URL 上打开的页面开始。我想在脚本中编写命令以打开浏览器并打开参数中给出的 URL。

【问题讨论】:

我会将问题标题更新为“编写 shell 脚本以在 Linux 上的浏览​​器中打开 URL” 如果您需要 python 解决方案,请查看webbrowser.open。在 cli 环境中,只要你安装了 python,你就可以执行python -m webbrowser https://google.com(大多数 linux 发行版都这样做) Clean way to launch the web browser from shell script?的可能重复 open http://localhost:9000 IIRC,open 命令仅适用于 mac。它肯定不适用于 ubuntu。 【参考方案1】:

方法一

假设您的浏览器是 Firefox,而您的脚本 urlopener

#!/bin/bash
firefox "$1"

像这样运行它

./urlopener "https://google.com"

旁注

firefox 替换为浏览器的可执行文件名。


方法二

正如评论中提到的[ @sato-katsura ],在*nixes 中,您可以使用名为xdg-open 的应用程序。例如,

xdg-open https://google.com

xdg-open 的手册说

xdg-open - 在用户的首选应用程序中打开文件或 URL xdg-open 在用户的首选应用程序中打开文件或 URL。如果一个 提供 URL 将在用户的首选 Web 中打开 URL 浏览器。 如果提供了文件,该文件将在 该类型文件的首选应用程序。 xdg-open 支持文件, ftp、http 和 https URL。

正如[ this ] 回答指出的那样,您可以使用say 更改您的首选浏览器:

xdg-settings set default-web-browser firefox.desktop

xdg-settings set default-web-browser chromium-browser.desktop

【讨论】:

在 UNIX 上:xdg-open "$@" 但是我们可以做点什么,这样我就可以像运行它... urlopener google.com 我们能否像命令一样运行该脚本...在开头不使用“./”并且在给出 URL 时不使用双引号。 为此,应将脚本的路径添加到 PATH 环境变量中。检查[ this ] 或将脚本复制到标准二进制文件夹,虽然这不是推荐的方法。 将我的脚本文件添加到 /usr/bin/ 文件夹是一个好习惯吗??【参考方案2】:

您无需为此编写脚本。根据您的操作系统,您可以使用一些工具:

Linux

xdg-open 在大多数 Linux 发行版中都可用。它在用户的首选浏览器中打开一个文件或 URL(可使用xdg-settings 进行配置)。

xdg-open https://***.com

macOS

open 在默认或指定的应用程序中打开文件和 URL。

open https://***.com
open -a Firefox https://***.com

窗口

您可以在命令提示符处使用start 命令在默认(或指定)浏览器中打开 URL。

start https://***.com
start firefox https://***.com

跨平台

内置的webbrowser Python 模块适用于许多平台。

python3 -m webbrowser https://***.com

【讨论】:

任何方式告诉它首先尝试哪个浏览器,例如Chrome。在 Mac 上它会尝试 firefox 然后回退到 safari 如果我输入“open ***.com”,那么它会使用我的默认浏览器 感谢这个解决方案,现在我可以把它放在自动启动脚本中,并确保每次我启动我的电脑时它都会首先打开 ***,希望在 100 天内我会得到一个金色徽章:) 对于谷歌浏览器是:open -a 'google chrome' yoururl @Alex 试试这个:python3 -m webbrowser https://***.com【参考方案3】:

在 MacOS 中,只需 open 即可。因此,如果 Chrome 是默认浏览器,open "$1" 将在 Chrome 中打开传递的 URL。

【讨论】:

【参考方案4】:

如果您想要一个跨操作系统的解决方案并且习惯于使用 Python (3):

试试这个:

import webbrowser

webbrowser.open('https://yoururl.com')

或者在终端/cmd中:

python -m webbrowser -t "https://yoururl.com"

【讨论】:

【参考方案5】:

对于Windows

你可以写start filename_or_URL

start https://www.google.com

它将在默认浏览器中打开 URL。如果要指定浏览器可以写:

start chrome https://www.google.com
start firefox https://www.google.com
start iexplore https://www.google.com

注意:如果您希望打开多个 URL,可以从程序文件中的 exe 文件(示例:C:\Program Files\Internet Explorer\iexplore.exe)中获取上述浏览器名称。

start chrome "www.google.com" "www.bing.com"

已使用 .sh(shellscript 文件)和 .bat 文件进行了测试。

【讨论】:

【参考方案6】:
start "" "browser_location" "address"

例如:

start "" "C:\Program Files (x86)\Google\Chrome\Application\chrome.exe" "https://google.com"

【讨论】:

这不是一个 shell 脚本。这里还有其他答案,其中包含相同的信息,但正确地将其标记为仅限 Windows 的变体,而实际上并不是本页顶部问题的答案。 这是dos cmd 的批处理,而不是 bash 脚本。【参考方案7】:

2021 年 1 月:别名的巨大脚本!

这是一个很棒的script,用于打开支持别名和多个浏览器的 URL。例子:

search|s|google|g
http://www.google.com/search?q=search\+

search2|s2|yahoo
https://search.yahoo.com/search?p=search\+

images|img
https://www.google.com/search?site=&tbm=isch&q=search\+

videos|v|youtube|yt
https://www.youtube.com/results?search_query=search\+

要使用 Google 别名 URL,您只需运行:

openurl search how to make fried rice

这将解析“google”网址并打开

https://www.google.com/search?q=how+to+make+fried+rice

查看project中的所有配置选项!

请注意:此代码库的星数为零,仅因为它是父代码库的子代码库:gnu-linux-shell-scripting。

【讨论】:

以上是关于用于打开 URL 的 Shell 脚本的主要内容,如果未能解决你的问题,请参考以下文章

用于打开 URL 的 Google Apps 脚本

ruby 用于打开Git Repository的远程URL的脚本

Shell脚本之;Web自动化

如何为具有特定 ip 的打开浏览器创建 shell 脚本?

sh 用于打开magento 2模板和阻止提示的Shell脚本,将文件添加到流浪者中的〜/ bin并将权限设置为755

博客迁移:Shell脚本批量文件处理