कमांड लाइन से एक क्रोम ऐप लॉन्च करें


14

मुझे नहीं पता कि कैसे एक bash से क्रोम ऐप लॉन्च किया जाए?

मैं पोस्टमैन के साथ इसे हासिल करने की कोशिश कर रहा हूं ।

google-chrome -hउन लोगों से , मैंने (दुर्भाग्य से) कोशिश की:

$ google-chrome --app="Postman"
$ google-chrome --extension="postman"

नतीजा यह है कि एक नई खाली खिड़की खोली जाती है।

मेरा पहला अनुमान है कि ऐप मेरी मशीन पर संग्रहीत है और इसे लॉन्च करने के लिए मुझे एक विशिष्ट फ़ाइल (ऐप इंडेक्स) खोलने की आवश्यकता है।

क्या इसे हासिल करना संभव है?

और अगर यह संभव है, तो कैसे करें?


1
संभवतः यदि आप इसी .desktopफ़ाइल को खोलते हैं ~/.local/share/applications(इसे किसी खुले हुए विंडो पर खींचें) तो आप Exec=लाइन में सही कमांड देख सकते हैं ।
जैकब व्लिजम

बिल्कुल सही, शुक्रिया @JacobVlijm कमांड का उपयोग --app-id=[id]मैं मान लेता हूं कि यह आईडी स्थायी है इसलिए मैं एक उपनाम बनाऊंगा, लेकिन क्या आप इसे इसके नाम से लॉन्च करने का कोई तरीका जानते हैं?
१:१५ बजे


@ डेज़ी क्योंकि यह एक ही सवाल नहीं है। यह क्रोम एप्लिकेशन लॉन्च करने के बारे में है, क्रोम ही नहीं।
18

जवाबों:


18

@JacobVlijm को धन्यवाद जवाब दिया।

कमांड-लाइन से क्रोम ऐप चलाने के लिए, निम्नलिखित का उपयोग करें:

google-chrome --app-id=[app_id]

का पथ मान लिया गया google-chromeहै /opt/google/chrome/google-chrome

ऐप आईडी प्राप्त करने के लिए, एप्लिकेशन नाम की पहली घटना खोजें /home/[user]/.local/share/applications


1
बिल्कुल सही, एक जवाब पोस्ट करने के लिए समय नहीं था, लेकिन फिर भी बाहर मदद करना चाहता था :)
याकूब Vlijm

आप विशेष एप्लिकेशन के लिए Chrome स्टोर URL से ऐप आईडी भी प्राप्त कर सकते हैं। बेशक यह केवल तभी काम करता है जब आपके पास इंटरनेट तक पहुंच हो :)
BarathVutukuri

1
यदि आपके पास कई Chrome प्रोफ़ाइल हैं, तो आपको प्रोफ़ाइल निर्देशिका को कमांड लाइन में जोड़ने की आवश्यकता है,:google-chrome --profile-directory=Default --app-id=[app-id]
Vidar S. Ramdal

0

दुर्भाग्य से, कोई भी तरीका नहीं है जो कमांड लाइन पर किसी ऐप को नाम से बुलाए। इस सुविधा को प्रदान करने का अर्थ है इंस्टॉल किए गए ऐप्स के लिए अविश्वसनीय अतिरिक्त पार्सिंग और कुछ इसे सुरक्षा दोष मानेंगे। आप स्वयं को पार्स कर सकते हैं, हालांकि, एक स्क्रिप्ट के साथ जो प्रत्येक एक्सटेंशन / ऐप का नाम खोजता है और तब तक निकालता है जब तक कि वह आपके लिए खोज नाम न खोज ले:

/usr/local/bin/chrome-app-by-name:

#!/bin/zsh
emulate -R zsh -o extendedglob -o nullglob
setopt rematchpcre ;# recommended, I'm so used to PCRE, I sometimes forget what doesn't work in Regex
Chrome_Profile=Default  ;# or "Profile 1" ...
cd ${XDG_CONFIG_HOME:-$HOME/.config}/google-chrome/${Chrome_Profile}/Extensions
foreach app in */*
   # We have just called the path to each version of each extension/app.
   # Next we enclose in braces - slightly unnecessary - to ensure that
   #  whatever version of Zsh, "manifest.json" is completely read and 
   #  closed before we use the variable.
   {
      App_Manifest="$(cat <$app/manifest.json)"
   }
   if [[ $App_Manifest =~ '^\s*"name"\s*:\s*"([a-zA-Z 0-9_.-]+)"' ]]
   then
      app_name="$match[1]" ;# capture the sub-expression match for "name"
      if [[ $app_name == $1 ]]
      then
         # For my system this is actually exec google-chrome-stable ...
         exec google-chrome --app-id="${app%%/*}" $argv[2,-1]
      fi
   fi
end
echo "App name not found.  Please use Exact, case-sensitive spelling."

कुछ ऐप स्क्रिप्ट में अपना नाम सेट करते हैं - मुझे नहीं पता कि क्यों! आपको ~/.local/share/applicationsउपरोक्त '' NAME = ... '' के लिए ".desktop" फ़ाइलों को खोजने के लिए इस तरह की स्क्रिप्ट को फिर से लिखना या जोड़ना पड़ सकता है ।

मैंने इस स्क्रिप्ट का परीक्षण नहीं किया है - मैंने आपके प्रश्न का उत्तर देने के लिए इसे केवल मक्खी पर लिखा है। मुझे उम्मीद है कि एक उदाहरण के रूप में यह आपके लिए काम करता है, लेकिन अगर विचार बिल्कुल सही नहीं है, तो हम इसे थोड़ा मोड़ सकते हैं। Zsh कुछ अन्य श-संगत गोले की तुलना में सरल, स्ट्रेट-फॉरवर्ड सिंटैक्स है। मैंने ऐसे किसी भी फीचर को छोड़ने की कोशिश की है जिसमें पीसीआरई को छोड़कर नए संस्करणों या मॉड्यूल की आवश्यकता होती है। पीसीआरई इतना आसान है कि सटीक पैटर्न से मेल खाने के लिए उपयोग करने के लिए मुझे अक्सर आवश्यकता होती है कि मैं ज्यादातर समय रेग रेक्स की उपेक्षा करूं। एक लम्बी पर्ल स्क्रिप्ट काम कर सकती है, इसमें से अधिकांश वाक्यविन्यास भी बिना शीर्षक के चलेंगे /bin/bashforeach ... end, $match[1]शैली सरणियाँ, setopt rematchpcreबैश रेगेक्स का सटीक सिस्टैक्स, और emulateमुख्य अपवाद हैं।


0
  1. वह फ़ोल्डर खोलें जिसमें आपके टर्मिनल में ऐप्स संग्रहीत हैं।
  2. Daud chmod +x *.desktop
  3. उस ग्राफ़िकल फ़ोल्डर पर वापस जाएं जिसमें आपके ऐप्स रहते हैं
  4. अब उनके पास आइकन होने चाहिए और वे नाम सही कर देंगे
  5. आप जिस ऐप को लॉन्च करना चाहते हैं उसे राइट-क्लिक करें
  6. क्लिक करें properties
  7. में Commandलाइन है कि के बारे में आधे रास्ते नीचे सूचीबद्ध है कि एप्लिकेशन खोलने के लिए इस्तेमाल किया आदेश है।
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.