用于打开 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 脚本的主要内容,如果未能解决你的问题,请参考以下文章
ruby 用于打开Git Repository的远程URL的脚本