Я не могу найти способ запустить приложение Chrome из Bash?
Я пытаюсь добиться этого с помощью Почтальон .
Из google-chrome -h
я попробовал (к сожалению) те:
$ google-chrome --app="Postman"
$ google-chrome --extension="postman"
В результате открывается новое пустое окно.
Мое первое предположение - приложение хранится на моей машине, и мне нужно открыть определенный файл (индекс приложения), чтобы запустить его.
Возможно ли достичь этого?
И если это возможно, как это сделать?
Отвеченный благодаря @JacobVlijm.
Для выполнения приложения Chrome от командной строки используйте следующее:
google-chrome --app-id=[app_id]
Принятие пути google-chrome
/opt/google/chrome/google-chrome
.
Для получения идентификатора приложения ищите первое вхождение имени приложения в /home/[user]/.local/share/applications
.
К сожалению, нет нет никакого пути, обеспеченного для вызова приложения в командной строке, он - имя. Обеспечение этой функции означало бы ненадежный дополнительный парсинг для установленных приложений, и некоторые будут считать это дефектом безопасности. Можно сделать парсинг себя, однако, со сценарием, который ищет и извлекает название каждого расширения/приложения, пока это не находит имя, которое Вы ищете:
/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
основные исключения.
chmod +x *.desktop
properties
Command
строку, которая перечислена, примерно на полпути вниз команда, используемая для открытия того приложения. После того, как я выполнил следующую команду, у меня сработало...
google-chrome --app-id=fhbjgbiflinjbdggehcddcbncdddomop
Принять конфигурации по умолчанию
Шаблон: google-chrome --app-id=
Чтобы получить идентификатор расширения:
chrome://extensions/
в браузере Chromechrome://extensions/?id=
Скопируйте extensionID из URL и используйте его в командеТочно так же вы можете использовать любое расширение Google Chrome
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