首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从shell脚本启动web浏览器的干净方法?

从shell脚本启动web浏览器的干净方法?
EN

Stack Overflow用户
提问于 2010-06-27 00:15:16
回答 6查看 103.6K关注 0票数 115

在bash脚本中,我需要启动用户web浏览器。似乎有很多方法可以做到这一点:

GNOME

  • www-browser

  • x-www-browser

  • ...

上的

  • $BROWSER
  • xdg-open
  • gnome-open

有没有一种比其他方法更标准的方法,可以在大多数平台上工作,或者我应该这样做:

代码语言:javascript
复制
#/usr/bin/env bash

if [ -n $BROWSER ]; then
  $BROWSER 'http://wwww.google.com'
elif which xdg-open > /dev/null; then
  xdg-open 'http://wwww.google.com'
elif which gnome-open > /dev/null; then
  gnome-open 'http://wwww.google.com'
# elif bla bla bla...
else
  echo "Could not detect the web browser to use."
fi
EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2010-06-27 00:51:25

xdg-open是标准化的,应该可以在大多数发行版中使用。

否则:

  1. eval是邪恶的,不要使用它。
  2. 引用您的变量。
  3. 以正确的方式使用正确的测试运算符。

下面是一个示例:

代码语言:javascript
复制
#!/bin/bash
if which xdg-open > /dev/null
then
  xdg-open URL
elif which gnome-open > /dev/null
then
  gnome-open URL
fi

也许这个版本稍好一些(仍未经过测试):

代码语言:javascript
复制
#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"
票数 81
EN

Stack Overflow用户

发布于 2010-06-27 01:11:46

代码语言:javascript
复制
python -mwebbrowser http://example.com

适用于多种平台

票数 103
EN

Stack Overflow用户

发布于 2012-06-02 02:43:17

OSX:

代码语言:javascript
复制
$ open -a /Applications/Safari.app http://www.google.com

代码语言:javascript
复制
$ open -a /Applications/Firefox.app http://www.google.com

或者干脆..。

代码语言:javascript
复制
$ open some_url
票数 61
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3124556

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档