น่าเสียดายที่ไม่มีวิธีใดในการเรียกแอปที่บรรทัดคำสั่งด้วยชื่อ การให้ฟีเจอร์นี้จะหมายถึงการแยกวิเคราะห์พิเศษที่ไม่น่าเชื่อถือสำหรับแอพที่ติดตั้งและบางอันอาจถือว่าเป็นข้อบกพร่องด้านความปลอดภัย อย่างไรก็ตามคุณสามารถแยกวิเคราะห์ตัวเองด้วยสคริปต์ที่ค้นหาและแยกชื่อของส่วนขยาย / แอปแต่ละรายการจนกว่าจะพบชื่อที่คุณค้นหา:
/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เป็นข้อยกเว้นหลัก
               
              
.desktopไฟล์ที่เกี่ยวข้องใน~/.local/share/applications(ลากไปที่หน้าต่าง gedit ที่เปิด) คุณสามารถเห็นคำสั่งที่ถูกต้องในExec=บรรทัด