Desafortunadamente, no, no hay forma de llamar a una aplicación en la línea de comando por su nombre. Proporcionar esta función significaría un análisis adicional poco confiable para las aplicaciones instaladas y algunos lo considerarían una falla de seguridad. Sin embargo, puede analizarlo usted mismo con un script que busca y extrae el nombre de cada extensión / aplicación hasta que encuentre el nombre que busca:
/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."
Algunas aplicaciones establecen sus nombres más profundamente en los scripts. ¡No sé por qué! Puede que tenga que volver a escribir o agregar a un script como este para buscar en los archivos ".desktop" ~/.local/share/applications
su '^ NAME = ...' equivalente al anterior, y luego obtener el comando de ejecución allí.
No he probado este script, solo lo escribí sobre la marcha para responder a su pregunta. Espero que, como ejemplo, funcione para usted, pero si la idea no es del todo correcta, podríamos modificarla un poco. Zsh es una sintaxis simple y directa en comparación con otros shells compatibles con sh. He tratado de omitir cualquier característica que requiera nuevas versiones o módulos, excepto PCRE. PCRE es mucho más fácil de usar para la coincidencia de patrones exactos que a menudo necesito que descuido Regex regular la mayor parte del tiempo. Un script Perl más largo podría funcionar, también la mayor parte de esta sintaxis se ejecutará sin modificaciones /bin/bash
. foreach ... end
, $match[1]
matrices de estilo setopt rematchpcre
, la sintaxis exacta de Bash Regex y emulate
son las principales excepciones.
.desktop
archivo correspondiente~/.local/share/applications
(arrástrelo sobre una ventana de gedit abierta) puede ver el comando correcto en laExec=
línea.