Construa seu programa passo a passo usando Shell Scripting - Parte 4

Em entradas anteriores desta série de publicações, lembramos como implementar um:

Shell Scripting

E nos anteriores, como implementar um Shebang e um BSM (Modo Bash Strict / Modo Bash Estrito).

Melhores práticas para criar um Shell Script no GNU / Linux - Parte 1

Melhores práticas para criar um Shell Script no GNU / Linux - Parte 2

Aqui está um exemplo de Módulo de otimização, tomando como exemplo um dos meus programas (aplicativos) fatos em um Script shell chamado Linux Post Install - Bicentennial Script 8.0:

Este deve ser o módulo (seção) instalar os pacotes básicos necessários ao bom funcionamento dos mesmos, ou executar as ações mínimas necessárias para atualizar, manter ou executar o Ambiente de Trabalho ou Sistema Operacional para que tudo funcione de forma satisfatória. Eu pessoalmente adiciono as seguintes linhas para criar este módulo:


###############################################################################
# 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               
###############################################################################

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

Como você pode ver, este módulo executa um atualização de aptitude, seguido pela instalação dos pacotes diálogo gxmessage zenity espeak gksu, continuando com as ordens de comando aptitude instalar -f y dpkg --configure -a. E no caso de se e somente se tudo tiver sido executado de forma satisfatória, um mensagem visual por terminal de conclusão bem-sucedida com um alerta sônico e continuei com a próxima etapa (módulo / seção) do Script Shell. Caso contrário, um mensagem visual por terminal de realização malsucedida com um alerta sônico, com outro mensagem visual pelo terminal recomendando ações manuais a serem executadas para evitar o erro alcançado novamente, e então terminar a execução do Script Shell.

Em relação às 2 últimas linhas do módulo, aqueles que começam com comando wget, por enquanto, não são essenciais, pois fazem parte de um Procedimento experimental adaptado por mim para alcançar o suporte de voz de um Script shell com conexão de internet usando o Sintetizador de voz online do Google Translate e sua voz feminina sensual, e assim substituir o sintetizador com voz robótica (masculino / feminino) fornecido localmente pelos sistemas operacionais GNU / Linux com os pacotes (programas) espeak, festival, festvox, mbrola, speech and stardict.

Recomendação:

LEIA O DOCUMENTO: «A CATEDRAL E O BAZAR»

A Catedral e o Bazar é uma espécie de manifesto criado por Eric S Raymond no ano 1.998 tentar explicar do seu ponto de vista e experiência pessoal (Criação do programa Buscar correio) o que ele percebeu sobre a criação e evolução bem-sucedidas do Linux e seus programas relacionados, especialmente da perspectiva da diferença entre os Modelos de Desenvolvimento de Software, que ele chamou pessoalmente: Maquete de Catedral e Maquete de Bazar.

Minha análise resumida desse documento é a seguinte:

Esta leitura sugere ou apresenta a visão que dentro do mundo de Engenharia de software existem “dois estilos de desenvolvimento completamente diferentes, modelo de catedral, aplicável à maioria dos desenvolvimentos realizados no mundo de software comercial, frente a modelo de bazar, mais típico do mundo Linux ". Enfatizando que esses 2 modelos são derivados de pontos de partida opostos sobre a natureza do processo de depuração de software e de sua teoria particular sobre o que ele chamou Lei de Linus que declarou o seguinte: "Dado um número suficiente de olhos, todos os erros são irrelevantes" ou em outras palavras: "Com um número suficiente de olhos, todos os erros são ninharias."

Também nesta leitura o autor enfatiza a palavra cabouqueiro, que na minha opinião o autor expressou como uma espécie de Usuário de alto nível capaz de compreender e explorar de forma eficiente um programa e de detectar, sugerir ou implementar correções ou modificações de forma e substância eficientes para toda a comunidade de usuários. Gostei muito desse conceito auto-sugerido por considerá-lo correto, porém, deixarei um que também gostei muito por ser muito mais global e / ou genérico.

cabouqueiro

"Linux é subversivo." Por quê? A primeira coisa que esta leitura nos diz é que:

Até então, havia uma grande diversidade de métodos ou modelos de Desenvolvimento de Software padronizados que eram baseados em um "Abordagem mais centralizada e planejada desde o início" como resultado do ato de projetar o Software sendo considerado algo relacionado a um fator X isso leva a “Alguma complexidade crítica”. E isso apesar de já existir no mundo UnixEm outras palavras, o trabalho consistindo em pequenas ferramentas, desenvolvimento rápido de protótipos e programação evolutiva, o surgimento da filosofia de desenvolvimento de Software Livre no Linux levou o assunto a outro nível de sofisticação.

Como resultado disso, embora Desenvolvimento de Software Privado foi feito de "Caminho silencioso e reverente", conforme você constrói um Catedral, o Desenvolvimento de Software Livre (Linux) foi feito de "forma movimentada e com múltiplas agendas (caminhos) e abordagens (propostas) ", assim como você estava em um ótimo Bazar.

Finalmente, expõe uma série de premissas que vale a pena quebrar e digerir em seu devido contexto para entender aqueles que desenvolvem para usuários da Comunidade de Software Livre. Essas premissas são:

  1. TODOS OS BONS TRABALHOS NO SOFTWARE COMEÇAM A TENTAR RESOLVER UM PROBLEMA PESSOAL A PARTIR DE QUE VOCÊ OS AGENDE.
  2. BONS PROGRAMADORES SABEM O QUE ESCREVER. O MAIOR SABE O QUE REESCRITAR (E REUTILIZAR).
  3. PENSE EM ELIMINAR PELO MENOS UM: VOCÊ ACABARÁ DE FAZER DE QUALQUER MANEIRA. "
  4. SE VOCÊ TEM A ATITUDE CERTA, PROBLEMAS INTERESSANTES O ENCONTRARÃO.
  5. QUANDO UM PROGRAMA NÃO ESTÁ MAIS INTERESSANDO VOCÊ, SEU ÚLTIMO DEVER É PASSÁ-LO PARA UM SUCESSOR COMPETENTE.
  6. TRATAR SEUS USUÁRIOS COMO COLABORADORES É A MANEIRA MENOS COMPLICADA DE MELHORAR RAPIDAMENTE E DEBUGURAR EFETIVAMENTE UM PROGRAMA.
  7. LIBERE-O EM BREVE. LANÇA COM frequência. E OUÇA SEUS USUÁRIOS.
  8. DADA UMA BASE BASTANTE DE TESTADORES E CONTRIBUIDORES, QUASE TODOS OS PROBLEMAS SERÃO IDENTIFICADOS RAPIDAMENTE E SUA SOLUÇÃO SERÁ ÓBVIO PARA ALGUÉM.

Mais outras 11 premissas restantes que são mais do tipo moderador (moral), que não vem com a história, mas com o que é interpretado por cada leitor (desenvolvedor), que no meu caso muito particular, me levou às seguintes conclusões:

Conclusão

Espero que tenha gostado desta informação e seja útil, pois A Leitura da Catedral e do Bazar é uma referência obrigatória para quem programa qualquer Desenvolvimento de Software Livre, seja ele grande ou pequeno.

Mais tarde, em postagens futuras, continuaremos a ver um exemplo de módulos (seções) que desempenham funções como:

  • MÓDULO DE AUTORIZAÇÃO DO USUÁRIO COM SENHA
  • MÓDULO DE DETECÇÃO DA ARQUITETURA DO SISTEMA OPERACIONAL
  • MÓDULO DE CONFIGURAÇÃO DE IDIOMA DE CODIFICAÇÃO
  • MÓDULO DE CONFIGURAÇÃO PROXY PARA O AMBIENTE DE EXECUÇÃO

Entre muitos outros!

E como sempre, recomendo vá aprendendo de forma autodidata sobre os comandos: gksu, diálogo, gxmessage, zenity, espeak, play, entre muitos outros para criar interfaces gráficas por Terminal ou para a Área de Trabalho do Usuário, com alertas sonoros ou multimídia, e conhecimento avançado que usarão mais tarde.

Lembre-se de que estas e quaisquer outras recomendações sobre alguns módulo, função, variável, comando ou ação em geral pode ser realizado várias maneiras, e o que é mostrado aqui é apenas um maneira simples, Do muitas maneiras possíveis e prováveis em que disse a ação pode ou poderia ser realizada!

Só para terminar deixo-vos, um Screencast feito por mim, para mostrar o que você seria capaz de fazer, após completar este Curso on-line de Shell Scripting em DesdeLinux:

LPI-SB8 Test ScreenCast

(LINUX POST INSTALL - SCRIPT BICENTENNIAL 8.0.0) - Parte 2


Deixe um comentário

Seu endereço de email não será publicado. Campos obrigatórios são marcados com *

*

*

  1. Responsável pelos dados: Miguel Ángel Gatón
  2. Finalidade dos dados: Controle de SPAM, gerenciamento de comentários.
  3. Legitimação: Seu consentimento
  4. Comunicação de dados: Os dados não serão comunicados a terceiros, exceto por obrigação legal.
  5. Armazenamento de dados: banco de dados hospedado pela Occentus Networks (UE)
  6. Direitos: A qualquer momento você pode limitar, recuperar e excluir suas informações.