使用Shell脚本为便携式应用程序创建.desktop文件

Bash Shell脚本:创建可移植应用程序的链接。

Bash Shell脚本:创建可移植应用程序的链接。

应用于操作系统的外壳程序一词是指操作系统的命令解释器。 通常,它是一种高性能的文本界面,以终端机(控制台)的形式表现出来,并且主要服务于3个重要的工作领域:管理操作系统,运行应用程序并与之交互以及充当基本角色。环境编程。 脚本是指使用Shell设计和创建脚本的技术.

Shell脚本非常有用。 编写我们所拥有的那些需求,然后编辑可以为我们完成这项工作的脚本是一个好主意。 在这种特殊情况下,我们将使用它在可移植,自执行和自包含应用程序的开始菜单和桌面中创建应用程序链接(快捷方式)。

Alacarte Linux应用程序

简介

很多时候,我们下载并安装了无论是否存在于我们的GNU / Linux发行版存储库中的应用程序,在安装或执行它们时都不会创建各自的.desktop文件。 相同或最佳情况下,它不会将其放置在正确的路径中,因此在更新“开始”菜单后,将其读取并显示在操作系统的已安装软件包列表中。

因此,我们必须呼吁使用“ Alacarte”或“ Menulibre”之类的应用程序在“开始”菜单中手动创建相应的链接。

而且,尽管这些图形应用程序非常容易使用,但要了解它绝不是太多 创建我们自己的脚本来执行上述操作,从而从操作系统中了解如何执行上述操作。

如果您不熟悉Shell脚本文件的创建和/或使用,则可以 读这个 以前的文章(Shell,Bash和脚本) 开始 然后在必要时进行探索 有关该主题的所有出版物。

Linux免费菜单应用程序

使用Shell脚本创建程序

出于篇幅考虑,我们将假设我们已经知道如何从头开始创建脚本,也就是说,我们已经知道如何创建脚本的头文件或初始部分,我们将直接了解其内容。

但是,如果对此有疑问,请检查此 上一篇文章(使用Shell脚本逐步构建程序-第1部分)来澄清疑问。

内容


#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.

###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB              
###############################################################################

# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.

clear

setterm -background red

if [[ "$(id -u)" != "0" ]]; then
   echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
   sleep 3
   clear      
  else
   echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
   sleep 3
   clear
fi

###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################


###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################

rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop

###############################################################################

echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop

chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop

chmod 755 `echo $HOME`/mi_app/mi_app.desktop

ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop

update-menus

###############################################################################

clear

su - $USER -c "xdg-open 'https://www.mi-app.com/'"

clear

echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''

sleep 3

###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
鼠标垫上的脚本内容

鼠标垫上的脚本内容

评论

正如您可以从代码中进行分析并省略标题一样,以下脚本以自动化方式执行以下操作:

  1. 验证它是否被用作超级用户root或超级用户root权限。
  2. 删除应用程序中由先前版本创建的先前链接。
  3. 在用户家中自己的文件夹中创建应用程序的新.desktop文件(链接)。
  4. 将用户所有者权限分配给创建的文件。
  5. 给创建的文件适当的读/写/执行权限。
  6. 创建指向必要路线的新符号链接。
  7. 更新开始菜单以显示创建的.desktop文件。
  8. 在创建的应用程序上执行特定的URL。

建议

建议在包含相关应用程序/可执行文件的文件夹中创建该文件,并在其中指定相应的图标(图像/徽标),并且该文件夹位于路径中 /opt 而不是路线 `echo $HOME`/mi_app/ 也就是说, /home/mi_usuario/mi_app.

希望这个小脚本可以解决您在此方面的需求! 直到下一篇文章。

当我离开你 有关该主题的Gnome官方网站上的链接 和这个视频:


发表您的评论

您的电子邮件地址将不会被发表。 必填字段标有 *

*

*

  1. 负责数据:MiguelÁngelGatón
  2. 数据用途:控制垃圾邮件,注释管理。
  3. 合法性:您的同意
  4. 数据通讯:除非有法律义务,否则不会将数据传达给第三方。
  5. 数据存储:Occentus Networks(EU)托管的数据库
  6. 权利:您可以随时限制,恢复和删除您的信息。

  1.   吉列尔莫

    非常感谢您对此以及您的所有文章。
    一个问题:如果您不是root用户,怎么能要求显示星号的密码以适当的权限继续执行?

    1.    Ing。Jose Albert

      您可以使用对话框创建一个界面,然后将加密密钥的属性应用于密码请求框! 我记得这个属性存在于对话框中。

      在上一篇文章中,有人做了一些类似但图形化的操作,但附加的文件(即所用的代码)不再可用: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   吉列尔莫

    谢谢,最好不要在没有图形界面的情况下离开bash环境,在这种情况下,即使没有星号或任何东西,它也要求输入密钥并且没有文本出现都没有关系。 嗯,我在 http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html