function openBrowser() {
URL=$1
OS=$(uname -s)
case "$OS" in
Darwin)
open "$URL"
;;
Linux)
if [[ "$(cat /proc/sys/kernel/osrelease)" =~ "Microsoft" ]]; then
# We are in bash on WSL (Windows Subsystem for Linux)
# We don't need a Linux-Browser and an X-Server,
# we just can call iexplore.exe,
# see also https://msdn.microsoft.com/en-us/commandline/wsl/interop
if [[ "(uname -p)" == "x86_64" ]]; then
/mnt/c/Program\ Files/Internet\ Explorer/iexplore.exe "$URL" 2> /dev/null
else
/mnt/c/Program\ Files\ \(x86\)/Internet\ Explorer/iexplore.exe "$URL" 2> /dev/null
fi
else
xdg-open "$URL"
fi
;;
Solaris)
/usr/dt/bin/sdtwebclient "$URL"
;;
*)
printf "Not supported on %s\n" "$OS"
;;
esac
}
To use the function in your bash-script, simply source the file that contains the function - I called the file network.include. You find the file as well at the repository of my tiny project called bashberries - that is a tiny collection of both bash scripts and bash includes, released under the terms of the Apache 2.0 license. The script below calls the function from above and opens the homepage to bashberries:
#!/usr/bin/env bash
. ./network.include
openBrowser https://github.com/jonelo/bash-dwarfs
Best regards,
Johann
Update Oct 23, 2017:
uname -r is not reliable enough, it does not work on the wls beta with Ubuntu 14.04 for example, better is to do a cat /proc/sys/kernel/osrelease
Update Oct 23, 2017:
bash-dwarfs has been renamed to bashberries.
Update Oct 23, 2017:
uname -r is not reliable enough, it does not work on the wls beta with Ubuntu 14.04 for example, better is to do a cat /proc/sys/kernel/osrelease
Update Oct 23, 2017:
bash-dwarfs has been renamed to bashberries.