เรียกใช้แอป Chrome จากบรรทัดคำสั่ง


14

ฉันหาวิธีเปิดแอป Chrome จากทุบตีไม่เจอ?

ฉันพยายามที่จะบรรลุเป้าหมายนี้กับบุรุษไปรษณีย์

จากgoogle-chrome -hฉันลอง (น่าเสียดาย) สิ่งเหล่านั้น:

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

ผลลัพธ์คือหน้าต่างว่างใหม่เปิดขึ้น

เดาแรกของฉันคือแอพถูกเก็บไว้ในเครื่องของฉันและฉันต้องเปิดไฟล์เฉพาะ (ดัชนีแอพ) เพื่อเปิดมัน

เป็นไปได้ไหมที่จะบรรลุเป้าหมายนี้?

และถ้าเป็นไปได้จะทำอย่างไร?


1
อาจเป็นไปได้ว่าถ้าคุณเปิด.desktopไฟล์ที่เกี่ยวข้องใน~/.local/share/applications(ลากไปที่หน้าต่าง gedit ที่เปิด) คุณสามารถเห็นคำสั่งที่ถูกต้องในExec=บรรทัด
Jacob Vlijm

สมบูรณ์แบบขอบคุณ @JacobVlijm คำสั่งใช้--app-id=[id]ฉันถือว่ารหัสนี้ถาวรดังนั้นฉันจะสร้างนามแฝง แต่คุณรู้วิธีที่จะเปิดมันด้วยชื่อหรือไม่
chalasr


@daisy เพราะนั่นไม่ใช่คำถามเดียวกัน นี่เป็นวิธีการเปิดแอปพลิเคชัน chrome ไม่ใช่ตัวโครเมียม
chalasr

คำตอบ:


18

ตอบแล้วขอบคุณ @JacobVlijm

หากต้องการเรียกใช้แอป Chrome จากบรรทัดคำสั่งให้ใช้รายการต่อไปนี้:

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

สมมติว่าเส้นทางของมีgoogle-chrome/opt/google/chrome/google-chrome

เพื่อดึงรหัสแอป, /home/[user]/.local/share/applicationsการค้นหาเกิดขึ้นครั้งแรกของชื่อโปรแกรมประยุกต์ใน


1
ที่สมบูรณ์แบบไม่ได้มีเวลาที่จะโพสต์คำตอบ แต่ก็ยังอยากที่จะช่วยออก :)
จาค็อบ Vlijm

คุณสามารถรับรหัสแอพได้จาก Chrome Store 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."

แอพบางตัวตั้งชื่อของพวกเขาให้ลึกลงไปในสคริปต์ - ฉันไม่รู้ว่าทำไม! คุณอาจต้องเขียนใหม่หรือเพิ่มสคริปต์เช่นนี้เพื่อค้นหาไฟล์ ".desktop" ในไฟล์~/.local/share/applications'^ NAME = ... ' ที่เทียบเท่ากับข้างต้นแล้วรับคำสั่งการเรียกใช้งานที่นั่น

ฉันไม่ได้ทดสอบสคริปต์นี้ - ฉันเพิ่งเขียนไปทันทีเพื่อตอบคำถามของคุณ ฉันหวังว่าเป็นตัวอย่างที่เหมาะกับคุณ แต่ถ้าความคิดนั้นไม่ถูกต้องเราสามารถปรับแต่งได้เล็กน้อย Zsh เป็นไวยากรณ์ที่เรียบง่ายช่องแคบไปข้างหน้าเมื่อเทียบกับเชลล์ที่เข้ากันได้กับ sh อื่น ๆ ฉันได้พยายามที่จะละทิ้งคุณสมบัติใด ๆ ที่ต้องใช้รุ่นหรือโมดูลใหม่ยกเว้น PCRE PCRE นั้นง่ายต่อการใช้งานมากสำหรับการจับคู่รูปแบบที่แน่นอนฉันมักจะต้องการให้ฉันละเลย Regex ปกติเป็นส่วนใหญ่ Perl /bin/bashสคริปต์ไม่สามารถทำงานยังมากที่สุดของรูปแบบนี้จะทำงานในไม่แปร foreach ... end, $match[1]อาร์เรย์สไตล์setopt rematchpcreที่ Systax แน่นอนของทุบตี Regex และemulateเป็นข้อยกเว้นหลัก


0
  1. เปิดโฟลเดอร์ที่เก็บแอพในเครื่องของคุณ
  2. วิ่ง chmod +x *.desktop
  3. กลับไปที่โฟลเดอร์กราฟิกที่แอพของคุณอยู่
  4. ตอนนี้พวกเขาควรมีไอคอนและพวกเขาแก้ไขชื่อ
  5. คลิกขวาที่แอพที่คุณต้องการเปิด
  6. คลิก properties
  7. ในCommandบรรทัดที่มีการระบุไว้ประมาณครึ่งทางคือคำสั่งที่ใช้เพื่อเปิดแอปนั้น
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.