使用Shell脚本逐步构建程序-第4部分

在本系列出版物的先前条目中,我们回顾了如何实现:

Shell脚本

在之前的文章中,如何实施 Shebang和BSM(严格Bash模式/严格Bash模式)。

在GNU / Linux中创建Shell脚本的最佳实践-第1部分

在GNU / Linux中创建Shell脚本的最佳实践-第2部分

这是一个例子 优化模块,以我的一个 程序(应用程序) 事实 Shell脚本Linux安装后-Bicentennial Script 8.0:

这应该是模块(部分) 安装它们正常运行所必需的基本软件包,或执行工作环境或操作系统的更新,维护或性能执行所需的最少操作,以便使所有程序都能令人满意地运行。 我个人添加了以下几行来创建此模块:


###############################################################################
# INICIO DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

# Sección que instala los paquetes bases del LPI-SB

echo -e '\a'

apt update && apt install dialog gxmessage zenity espeak gksu -y && apt install -f && dpkg --configure -a

if [ $? = 0 ]; then

     echo ""
     echo ""
     echo "#--------------------------------------------------------#"
     echo "#LA INSTALACIÓN DE LOS PAQUETES HA CULMINADO EXITOSAMENTE#"
     echo "#--------------------------------------------------------#"
     echo ""
     echo ""

     play /usr/share/sounds/info.wav 2> /dev/null

     sleep 3
     clear

else

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '# LA INSTALACIÓN DE LOS PAQUETES NO CULMINO EXITOSAMENTE #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     play /usr/share/sounds/warning.wav 2> /dev/null

     sleep 3
     clear

     echo ''
     echo ''
     echo '#--------------------------------------------------------#'
     echo '#                  EJECUTE MANUALMENTE                   #'
     echo '# UN MANTENIMIENTO PREVENTIVO Y CORRECTIVO EN SU SISTEMA #'
     echo '#   EJECUTANDO LA SIGUIENTES ORDEN DE COMANDO, 1 HA 1:   #'
     echo '#                                                        #'
     echo '#                       apt update                       #'
     echo '#                     apt install -f                     #'
     echo '#                   dpkg --configure -a                  #'
     echo '#                       apt upgrade                      #'
     echo '#                                                        #'
     echo '#   LUEGO INSTALE MANUALMENTE LOS PAQUETES NECESARIOS    #'
     echo '#         CON LA ORDEN DE COMANDO SIGUIENTE:             #'
     echo '#                                                        #'
     echo '#      apt install dialog gxmessage zenity espeak -y     #'
     echo '#                                                        #'
     echo '#  AHORA, VUELVA HA INTENTAR EJECUTAR EL SCRIPT LPI-SB   #'
     echo '#--------------------------------------------------------#'
     echo ''
     echo ''

     sleep 3
     clear

     play /usr/share/sounds/info.wav 2> /dev/null

     exit 0

fi

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=BIENVENIDO%20AL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO&tl=es&total=1&idx=0&textlen=54&tk=511133.124198&client=t&prev=input&ttsspeed=0.24" ; play -q /tmp/audio.mp3

wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=ESTIMADO%20USUARIO%2C%20ESPERE%20UNOS%20SEGUNDOS%20MIENTRAS%20EL%20PROGRAMA%20SE%20CARGA%20E%20INICIA&tl=es&total=1&idx=0&textlen=77&tk=337132.200023&client=t&prev=input" ; play -q /tmp/audio.mp3

###############################################################################
# FINAL DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO               
###############################################################################

===============

如您所见,此模块运行 才能更新,然后安装软件包 对话gxmessage zenity espeak gksu,继续执行命令 能力安装 -f y dpkg –配置-a。 并且,当且仅当所有事情都令人满意地执行了, 视觉讯息 通过终端 成功完成的 声音警报 我继续下一步的(模块/部分) Shell脚本。 否则, 视觉讯息 通过终端 实现失败的原因 声音警报, 和另外一个 终端的视觉消息,建议执行手动操作以避免再次发生错误, 然后完成执行 Shell脚本。

关于模块的最后两行,以 wget命令,目前这些都不是必不可少的,因为它们是 实验程序 由我改编,以实现 Shell脚本 与互联网连接使用 Google翻译的在线语音合成器和她性感的女性声音,然后替换 机器人声音合成器(男/女) 由GNU / Linux操作系统在本地提供的软件包(程序) espeak,节日,festvox,mbrola,演讲和stardict。

推荐:

阅读文档: «大教堂和巴扎尔»

大教堂和集市 是一种由 Eric S. Raymond 在一年中 1.998 尝试从您的观点和个人经验进行解释(创建程序 提取邮件)他对Linux及其相关程序的成功创建和发展有何看法,尤其是从 软件开发模型,他个人称为: 大教堂模型和集市模型.

我对该文件的总结分析如下:

这种阅读暗示或呈现了在世界范围内 工程师软件 有“两种完全不同的发展风格, 大教堂模型,适用于世界范围内进行的大多数开发 商业软件,在 集市模型,更典型的世界 Linux。 强调这两个模型是从软件调试过程的本质上相反的出发点以及他关于他所说的特定理论得出的 莱纳斯定律 其中指出: “只要有足够多的眼睛,所有错误都是不相关的” 或者换句话说: “有足够多的眼睛,所有的错误都是琐事。”

同样在这篇阅读中作者强调了这个词 黑客,我认为作者表示为一种 能够理解和有效利用程序,并能以整个用户社区有效的形式和实质检测,建议或实施更正或修改的高级用户。 我很喜欢这个自我建议的概念,因为我认为它是正确的,但是,我会留下一个我也很喜欢的概念,因为它更具全局性和/或通用性。

黑客

“ Linux是颠覆性的。” 为什么? 此阅读告诉我们的第一件事是:

在此之前,基于软件的标准化软件开发方法或模型种类繁多。 “从一开始就采取更加集中和计划的方法” 由于设计软件的行为被视为与 X因子 导致 “一些关键的复杂性。” 即使这已经存在于 Unix世界换句话说,由小型工具,快速原型制作和演进式编程组成的工作,Linux下自由软件开发理念的出现,使问题进一步发展。

结果,虽然 私人软件开发 由...制成 “安静而崇敬的方式”,当您建立一个 大教堂中, 自由软件开发(Linux) 由“繁华的方式,并有多个议程(路径)和方法(建议)”,就像你在一个伟大的 义卖会.

最后,它揭示了一系列前提,这些前提值得在适当的背景下进行分解和总结,以了解为自由软件社区用户开发的前提。 这些前提是:

  1. 该软件中的所有好作业都开始尝试从您计划它们的过程中遇到个人问题。
  2. 好程序员知道要写什么。 最伟大的知道什么要重写(和重用)。
  3. 关于至少淘汰的思考:无论如何,您最终都会这样做。”
  4. 如果您有正确的态度,就会发现有趣的问题。
  5. 当程序不再引起您的兴趣时,您的最后职责就是将其传递给有能力的成功者。
  6. 快速改善和有效调试程序的复杂方式少之又少。
  7. 尽快发布。 经常发射。 并聆听您的用户。
  8. 考虑到测试人员和贡献者的广泛基础,几乎所有问题都将得到快速识别,并且对于某些人来说,其解决方案将是显而易见的。

另外还有11个其他房屋属于清醒类型(道德),不是故事本身,而是每个人的解释 读者(开发人员),在我的特殊情况下,导致我得出以下结论:

结论

希望您喜欢它,并且该信息对您有所帮助,因为 《大教堂和集市》的阅读是对所有使用自由软件进行编程的人(无论大小)的强制性参考。

稍后,在以后的文章中,我们将继续看到以下示例 模块(部分) 执行以下功能:

  • 带有密码的用户授权模块
  • 检测操作系统体系结构的模块
  • 编码语言配置模块
  • 执行环境的代理配置模块

除其他外!

和往常一样,我建议 以自学成才的方式学习 关于命令: gksu,对话,gxmessage,zenity,espeak,播放等等 通过终端或用户桌面创建带有声音或多媒体警报的图形界面,并提高知识,供以后使用。

请记住,这些以及其他一些建议 模块,功能,变量,命令或动作 通常可以进行 很多种方法,这里显示的只是一个 简单的方法许多可能和可能的方式 在其中说 可以或可以采取行动!

为了结束我离开你, 我进行的截屏完成后,向您展示您的能力 Shell 脚本在线课程 DesdeLinux:

LPI-SB8测试ScreenCast

(LINUX POST安装-百年纪念脚本8.0.0)-第2部分


发表您的评论

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

*

*

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