[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
2022-05-15 11:41:14
質問
bashスクリプトで、ユーザーのWebブラウザを起動する必要があります。これを行うには多くの方法があるようです。
-
$BROWSER
-
xdg-open
-
gnome-open
GNOME上 -
www-browser
-
x-www-browser
- ...
これを行うために、ほとんどのプラットフォームで動作する、他のものより標準的な方法はありますか、それともこのようなもので行くべきですか。
#/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
どのように解決するのですか?
xdg-open
は標準化されており、ほとんどのディストリビューションで利用可能であるはずです。
それ以外の場合は
-
eval
は悪です、使わないでください。 - 変数を引用してください。
- 正しい方法で正しいテスト演算子を使用する。
以下はその例です。
#!/bin/bash
if which xdg-open > /dev/null
then
xdg-open URL
elif which gnome-open > /dev/null
then
gnome-open URL
fi
もしかしたら、このバージョンの方が少しはマシかもしれません(まだ未検証)。
#!/bin/bash
URL=$1
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
echo "Can't find browser"
関連
-
[解決済み] Bashスクリプトのソースディレクトリをスクリプト自体から取得するにはどうすればよいですか?
-
[解決済み] Bashシェルスクリプトでディレクトリが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] シェルで、「2>&1」はどういう意味ですか?
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] LinuxのシェルスクリプトでYes/No/Cancelの入力を促すにはどうしたらいいですか?
-
[解決済み] Bashシェルスクリプトの入力引数の存在確認
-
[解決済み] シェルスクリプトでYYYY-MM-DD形式の日付にする
-
[解決済み] シェルスクリプトで部分文字列を別の文字列に置き換える
-
[解決済み] 指定した名前のDockerコンテナが存在しない場合のみ、Bashコマンドを実行するにはどうすればよいですか?
-
[解決済み] bash で "set -o nounset" を使用したときに変数が設定されているかどうかをテストする。
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Bashスクリプトからプログラムが存在するかどうかを確認するにはどうすればよいですか?
-
[解決済み] bash で "set -o nounset" を使用したときに変数が設定されているかどうかをテストする。
-
[解決済み] bashでalt + numericを押すと(arg [numeric])と出ますが、これは何でしょう?
-
[解決済み] find "の結果をカウントするのに最適な方法は何ですか?
-
[解決済み] Bashはどのように異なるディレクトリコンテキストでコマンドを実行できますか?
-
[解決済み] シェルスクリプトからウェブブラウザを起動する方法は?
-
[解決済み] bashで端末の最終行を削除して置換するには?
-
[解決済み] Docker: 実行中のDockerコンテナの停止と削除
-
[解決済み] unset の使用と変数への空の設定
-
[解決済み] homebrew パッケージがインストールされているかどうかを検出する