명령 줄에서 Chrome 앱을 시작합니다


14

bash에서 크롬 앱을 시작하는 방법을 찾을 수 없습니까?

Postman으로 이것을 달성하려고합니다 .

에서 google-chrome -h, 불행히도 그 것들을 시도했습니다.

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

결과적으로 새로운 빈 창이 열립니다.

내 첫 번째 추측은 응용 프로그램이 내 컴퓨터에 저장되어 있으며 특정 파일 (응용 프로그램 색인)을 열어서 시작해야한다는 것입니다.

이것을 달성 할 수 있습니까?

그리고 가능하다면 어떻게해야합니까?


1
아마도 해당 .desktop파일 을 열면 ~/.local/share/applications(열린 gedit 창 위로 드래그) Exec=줄에 올바른 명령을 볼 수 있습니다 .
Jacob Vlijm

감사합니다, @JacobVlijm 감사합니다. 이 명령 --app-id=[id]은이 ID가 영구적이라고 가정하여 별칭을 만들지 만 이름으로 시작하는 방법을 알고 있습니까?
chalasr


@daisy는 같은 질문이 아니기 때문에. 이것은 크롬 자체가 아닌 크롬 응용 프로그램을 시작하는 방법에 관한 것입니다.
chalasr 2016 년

답변:


18

@JacobVlijm 감사합니다.

명령 줄에서 크롬 앱을 실행하려면 다음을 사용하십시오.

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

의 경로 가정 google-chromeIS를 /opt/google/chrome/google-chrome.

앱 ID를 검색하려면에서 애플리케이션 이름의 첫 항목을 검색하십시오 /home/[user]/.local/share/applications.


1
완벽, 답변을 게시 할 시간이 없었지만 여전히 도와주고 싶어 :)
Jacob Vlijm

특정 애플리케이션의 Chrome 스토어 URL에서 앱 ID를 가져올 수도 있습니다. 물론 이것은 인터넷에 액세스 할 수있는 경우에만 작동합니다 :)
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는 다른 sh 호환 쉘과 비교할 때 간단하고 해협적인 구문입니다. PCRE를 제외한 새 버전이나 모듈이 필요한 기능은 모두 제거하려고했습니다. PCRE는 정확한 패턴 일치에 사용하기가 훨씬 쉬워서 정규 정규 표현식을 대부분 무시하는 경우가 많습니다. 더 긴 Perl 스크립트가 작동 할 수 있으며이 구문의 대부분은에서 수정되지 않은 상태로 실행됩니다 /bin/bash. foreach ... end, $match[1]style arrays, setopt rematchpcreBash Regex의 정확한 systax이며 emulate주요 예외입니다.


0
  1. 터미널에 앱이 저장된 폴더를 엽니 다.
  2. 운영 chmod +x *.desktop
  3. 앱이있는 그래픽 폴더로 돌아갑니다.
  4. 이제 아이콘이 있어야하고 이름을 수정해야합니다.
  5. 시작하려는 앱을 마우스 오른쪽 버튼으로 클릭
  6. 딸깍 하는 소리 properties
  7. Command반쯤 표시 되는 줄 에는 해당 앱을 여는 데 사용되는 명령이 있습니다.
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.