Dalam skrip bash, saya perlu meluncurkan browser web pengguna. Tampaknya ada banyak cara untuk melakukan ini:
$BROWSER
xdg-open
gnome-open
di GNOMEwww-browser
x-www-browser
- ...
Apakah ada cara yang lebih standar daripada yang lain untuk melakukan ini yang akan berfungsi di sebagian besar platform, atau haruskah saya menggunakan sesuatu seperti ini:
#/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
bash
shell
command-line
standards
standards-compliance
nicoulaj.dll
sumber
sumber
?
atau&
ada yang perlu dikutip.eval
(ini risiko keamanan):$BROWSER http://wwww.google.com
sensible-browser
.Jawaban:
xdg-open
distandarisasi dan harus tersedia di sebagian besar distribusi.Jika tidak:
eval
itu jahat, jangan gunakan itu.Berikut ini contohnya:
Mungkin versi ini sedikit lebih baik (masih belum teruji):
sumber
-s
opsi ini, tetapi tampaknya itu tidak ada di Linux.)which
untuk mendeteksi binari ?berfungsi di banyak platform
sumber
webbrowser
modulnya!python -m webbrowser file:///usr/share/doc/python/FAQ.html
OSX:
atau
atau hanya ...
sumber
Anda bisa menggunakan yang berikut ini:
Itu tidak akan menjalankan pengguna melainkan browser X default sistem.
Lihat: utas ini.
sumber
x-www-browser <url>
melakukan pekerjaan dengan sangat baik!Mengambil jawaban lain dan membuat versi yang berfungsi untuk semua OS utama serta memeriksa untuk memastikan bahwa URL diteruskan sebagai variabel run-time:
sumber
Ini mungkin tidak berlaku tepat untuk apa yang ingin Anda lakukan, tetapi ada cara yang sangat mudah untuk membuat dan meluncurkan server menggunakan
http-server
paket npm .Setelah terinstal (baru
npm install http-server -g
) Anda bisa meletakkanhttp-server -o
di skrip bash Anda dan itu akan meluncurkan server dari direktori saat ini dan membuka browser ke halaman itu.
sumber
npm
harus diinstal +http-server
paket + meluncurkan server web yang tidak dibutuhkan ...open
, tetapi masih berlebihan