শেল স্ক্রিপ্ট থেকে ওয়েব ব্রাউজার চালু করার পরিষ্কার উপায়?


103

ব্যাশ স্ক্রিপ্টে, আমার ব্যবহারকারীর ওয়েব ব্রাউজারটি চালু করা দরকার। এটি করার অনেকগুলি উপায় রয়েছে বলে মনে হচ্ছে:

  • $BROWSER
  • xdg-open
  • gnome-open জিনোমে
  • 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

আপনার সমাধানটি আমার কাছে দুর্দান্ত বলে মনে হচ্ছে
— জ্যামি ওয়াং

হ্যাঁ, যদিও আমি এক্সডিজি-ওপেন এবং জিনোম-ওপেন অদলবদল করব
— নিনজালজ

4
আপনার ইউআরএল সম্পর্কে সতর্কতা অবলম্বন করুন। এটির মতো ?বা &সেখানে একটি চরিত্র পাওয়া সহজ , যা উদ্ধৃত করা দরকার।
— গাবে

আপনি এটি eval(এটি একটি সুরক্ষা ঝুঁকি) ফেলে দিতে সক্ষম হবেন :$BROWSER http://wwww.google.com
— পরবর্তী বিজ্ঞপ্তি না দেওয়া পর্যন্ত বিরতি দেওয়া হয়েছে।

এছাড়াও আছে sensible-browser।
— যান্ত্রিক শামুক

উত্তর:


72

xdg-open মানক করা হয় এবং বেশিরভাগ বিতরণে উপলব্ধ হওয়া উচিত।

অন্যথায়:

  1. eval খারাপ, এটি ব্যবহার করবেন না।
  2. আপনার পরিবর্তনশীল উদ্ধৃতি।
  3. সঠিক উপায়ে সঠিক পরীক্ষা অপারেটরগুলি ব্যবহার করুন।

এখানে একটি উদাহরণ:

#!/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"

ওহ হ্যাঁ অবশ্যই. ধন্যবাদ (প্রথমে আমি -sবিকল্পটি ব্যবহার করতে পছন্দ করতাম তবে এটি
— ফিলিপ


4
আমি খারাপ বলার জন্য বিয়োগফলটি করেছি is এটি বাশ, জাভাস্ক্রিপ্ট নয়। ক্যাচ বাক্যাংশগুলিতে প্রোগ্রামিং ভাষা জুড়ে না।
— দার্ট এগারিজিয়াস


4
বাশের সুন্দর ব্যবহার (২ য় সংস্করণ)! আজ নতুন কিছু শিখেছি।
— ব্রেকডফুট

96
python -mwebbrowser http://example.com

অনেক প্ল্যাটফর্মে কাজ করে


4
যদি পাইথন ইনস্টল থাকে ... তবে webbrowserমডিউলটি উল্লেখ করার জন্য ধন্যবাদ !
— নিকুলাজ

4
@ জুলিয়াননিউক্লাউড আমি সবেমাত্র ডেবিয়ান ইনস্টল করেছি এবং পাইথন আছে আমি মনে করি এটি অনেকগুলি লিনাক্স বিতরণের সাথে বান্ডিল হয়েছে।
— টোমা জ্যাটো - মনিকা

এটি একটি দুর্দান্ত মডিউল, তবে এটি স্থানীয় ফাইলগুলির সাথে কাজ করবে বলে মনে হয় না। ওয়েব ডেভলপমেন্ট করার সময় এটি সাধারণ ব্যবহারের ক্ষেত্রে হবে।
— হেক্সাটোনিক

4
@Hexatonic: এটা স্থানীয় ফাইলগুলির সাথে কাজ করে যেমন,python -m webbrowser file:///usr/share/doc/python/FAQ.html
— JFS

58

ওএসএক্স:

$ open -a /Applications/Safari.app http://www.google.com

বা

$ open -a /Applications/Firefox.app http://www.google.com

বা কেবল ...

$ open some_url

11
এটি হয় খুব শক্তভাবে পোর্টেবল হয়, তবে হ্যাঁ, আপনি এটি ওএসএক্সে কীভাবে করেন।
— ট্রিপলি

4
প্রশ্নটি "বেশিরভাগ প্ল্যাটফর্মগুলিতে" বলে!
— যান্ত্রিক শামুক 4

10
আমাদের মধ্যে কয়েকজন ওএসএক্স ব্যবহার করছে, সুতরাং এই উত্তরটি দরকারী।

15

আপনি নিম্নলিখিত ব্যবহার করতে পারেন:

x-www-browser

এটি ব্যবহারকারীর নয় বরং সিস্টেমের ডিফল্ট এক্স ব্রাউজারটি চালায়।

দেখুন: এই থ্রেড


x-www-browser <url>কাজটি খুব ভাল করে!
— বাস্টার

4
ম্যাক ওএসে নেই।
— জামেস্ক্যাম্পবেল

4
লোল, আমি এই বিষয়ে মন্তব্য করতে এখানে এসেছি এবং দেখেছি যে আমার পূর্ববর্তী স্ব গত বছর এ সম্পর্কে মন্তব্য করেছিলেন। এটি কিছু ম্যাট্রিক্স / ইনসেপশন স্টাফ।
— জামেস্ক্যাম্বেল

0

অন্যান্য উত্তরগুলি গ্রহণ করে এবং এমন একটি সংস্করণ তৈরি করা যা সমস্ত বড় ওএসের জন্য কাজ করে পাশাপাশি কোনও ইউআরএল রান-টাইম ভেরিয়েবল হিসাবে প্রবেশ করেছে কিনা তা পরীক্ষা করে দেখুন:

#!/bin/bash
if [ -z $1 ]; then
  echo "Must run command with the url you want to visit."
  exit 1
else
  URL=$1
fi
[[ -x $BROWSER ]] && exec "$BROWSER" "$URL"
path=$(which xdg-open || which gnome-open) && exec "$path" "$URL"
if open -Ra "safari" ; then
  echo "VERIFIED: 'Safari' is installed, opening browser..."
  open -a safari "$URL"
else
  echo "Can't find any browser"
fi

-7

এটি আপনি যা করতে চান তার ক্ষেত্রে ঠিক প্রয়োগ নাও হতে পারে তবে http-serverএনপিএম প্যাকেজ ব্যবহার করে একটি সার্ভার তৈরি ও চালু করার সত্যিই সহজ উপায় রয়েছে ।

একবার ইনস্টল হয়ে (ঠিক npm install http-server -g) আপনি রাখতে পারেন

http-server -o

আপনার বাশ স্ক্রিপ্টে এবং এটি বর্তমান ডিরেক্টরি থেকে একটি সার্ভার চালু করবে এবং সেই পৃষ্ঠায় একটি ব্রাউজার খুলবে।


4
এটি npmইনস্টল করতে হবে + http-serverপ্যাকেজ + একটি
— অনিবদ্ধ

4
আপনি যদি এনপিএম ব্যবহার করতে যাচ্ছেন, সেখানে একটি প্যাকেজ বলা হয়েছে open, তবে এটি এখনও বেশি পরিমাণে
— ম্যাট ফ্লেচার
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.