Запустите приложение Chrome из командной строки

Я не могу найти способ запустить приложение Chrome из Bash?

Я пытаюсь добиться этого с помощью Почтальон .

Из google-chrome -h я попробовал (к сожалению) те:

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

В результате открывается новое пустое окно.

Мое первое предположение - приложение хранится на моей машине, и мне нужно открыть определенный файл (индекс приложения), чтобы запустить его.

Возможно ли достичь этого?

И если это возможно, как это сделать?

13
задан 3 March 2016 в 16:07

4 ответа

Отвеченный благодаря @JacobVlijm.

Для выполнения приложения Chrome от командной строки используйте следующее:

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

Принятие пути google-chrome /opt/google/chrome/google-chrome.

Для получения идентификатора приложения ищите первое вхождение имени приложения в /home/[user]/.local/share/applications.

17
ответ дан 4 March 2016 в 02:07
  • 1
    Я обращался к Вашей ссылке Are there any side affects? Is it a good idea to do at the beginning of the script, like this:. Когда Вы сказали как это, Вы помещаете эти три строки. Я описал их использование так, чтобы Вы могли рассмотреть намерения их в сценарии. Ваша ссылка на busy для Ваших сценариев, которыми звучат, как будто Вы использовали set -x опция. Я wasn' t уверенный, если это был Ваш сценарий или сценарий, который шел с пакетом, который Вы пытались оптимизировать, но не повреждение. – L. D. James 1 June 2017 в 16:04

К сожалению, нет нет никакого пути, обеспеченного для вызова приложения в командной строке, он - имя. Обеспечение этой функции означало бы ненадежный дополнительный парсинг для установленных приложений, и некоторые будут считать это дефектом безопасности. Можно сделать парсинг себя, однако, со сценарием, который ищет и извлекает название каждого расширения/приложения, пока это не находит имя, которое Вы ищете:

/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-compatible. Я попытался не учесть любые функции, которые требуют новых версий или модулей за исключением PCRE. PCRE настолько легче использовать для точного сопоставления с образцом, мне часто нужно это, я пропускаю обычный Regex большую часть времени. Более длинный сценарий Perl мог работать, также большая часть этого синтаксиса будет работать неизмененный в /bin/bash. foreach ... end, $match[1] разработайте массивы, setopt rematchpcre, точный systax Bash Regex, и emulate основные исключения.

0
ответ дан 4 March 2016 в 02:07
  • 1
    Спасибо! Во всех моих годах, I' ve, никогда замечаемый - no-install-recommends опция. Угадайте I' ve никогда не сталкиваются с пакетом с таким количеством смешных дополнительных пакетов. We' ре довольно согласилось на человечность здесь на работе. Если это была моя собственная машина, I' d исследуют другие дистрибутивы, но.... Я пытался-проголосовать за этот ответ, но по-видимому ' newbies' not' t позволил-голосовать. – user352726 1 June 2017 в 11:05
  1. Открывают папку, в которой приложения хранятся в Вашем терминале.
  2. Выполнение chmod +x *.desktop
  3. Возвращается к графической папке, в которой Ваши приложения находятся
  4. Теперь, у них должны быть значки, и они исправляют имена
  5. , Щелкают правой кнопкой по приложению, которое Вы хотите запустить
  6. , Нажимают properties
  7. In the Command строку, которая перечислена, примерно на полпути вниз команда, используемая для открытия того приложения.
0
ответ дан 4 March 2016 в 02:07
  • 1
    большое спасибо. использование клавиатуры отображается, я мог выяснить, как ввести. Эта раскладка клавиатуры немного отличается от той, которую я использую в Windows для ввода этих небольших преобразований Ра Буквы Devanagari. – Madhav 4 June 2017 в 23:32

После того, как я выполнил следующую команду, у меня сработало...

google-chrome --app-id=fhbjgbiflinjbdggehcddcbncdddomop

Принять конфигурации по умолчанию

Шаблон: google-chrome --app-id=

Чтобы получить идентификатор расширения:

  • откройте chrome://extensions/ в браузере Chrome
  • нажмите кнопку «Подробнее» расширения Postman
  • просмотрите адрес в адресной строке, где URL-адрес в формате chrome://extensions/?id= Скопируйте extensionID из URL и используйте его в команде

Точно так же вы можете использовать любое расширение Google Chrome

0
ответ дан 12 October 2020 в 04:50

Другие вопросы по тегам:

Похожие вопросы: