Sumário


O que é?

Em linguagens de Script normalmente não seguimos um padrão preestabelecido de normas a serem seguidas, em Shell não é diferente.
Por não seguir nenhuma norma acaba que os programas fiquem bagunçados/desleixados, sem nenhum regra exposta, cada Shelleiro impõe a sua própria regra. Isto se podemos chamar de programas, muitas vezes estes programas possuem uma lógica boa e funcional, porem são simples scripts descartáveis.
Em muitos casos os próprios programadores não conseguem fazer leituras posteriormente de seus próprios programas, programadores que veem de fora para cooperar no desenvolvimento ou simplesmente forkar se descabelam.
Leigos ficam perdidos com tantas implementações que cada programador impõe em seus próprios programas...

A Shell Quality veio para suprir isto, assim criando um Modelo padronizado a ser seguido, fornecendo um template base para seus programas e scripts, facilitando a vida dos programadores e pessoas entusiastas a programação.


Norma Shell Quality

Se o Autor/Autores determinarem que o programa está sob a norma de padronização Shell Quality o programa deverá se manter com a norma preestabelecida, a não ser que o Autor/Autores resolvam revogar.


Entrada

Shebang

A Shebang não deve ser o caminho absoluto...
Chamamos o caminho completo do comando env e ele próprio irá se encarregar de encontrar!

/bin/bash [ERRADO]
/bin/sh [ERRADO]
/bin/fish [ERRADO]
/usr/bin/env bash [CORRETO]
/usr/bin/env sh [CORRETO]
/usr/bin/env fish [CORRETO]

Super Tag

A super tag '' fica logo abaixo da Shebang, a tag é necessária indicando que o programa/script segue as normas estabelecidas pela Shell Quality - Programming to People, e devem seguir o padrão que foi estabelicido pelo autor.

#<@Shell Quality>


Cabeçalho

Box

O box é formado por uma linha inicial e final de 80 colunas não devendendo ser ultrapassada. Na linha inicial em Qualquer parte ao decorrer da linha faça a chamada do 'HEADER'

#============HEADER===========================================================|
#
#=============================================================================|

Dentro devem conter informações primordiais do programa/script seguindo uma ordem.


Corpo Inicial

VAR-BOX

Após a 'Entrada/Cabeçalho' vem a parte do corpo inicial, basicamente fazemos as chamadas em ordens, iniciando com a chamada das váriaveis 'Globais' do programa, como por exemplo (Nome, Versão, Diretorios, Log) etc...
Todas váriaveis precisam ficar dentro de um simples box seguindo o mesmo modelo do 'Cabeçalho', porem em menor escala "45 Colunas", o box PODE ser ultrapassado!

#=========VARIAVEIS==========================|
#
#==========================================|

FUNCTIONS-BOX

Se caso o programa possui funções deverão ser feito as suas chamadas dentro deste box.

#=========FUNCOES==========================|
#
#==========================================|

LIBRARY-BOX

Todas bibliotecas externas 'Globais' deverão ser mantidos aqui Exemplo (Biblioteca de funções)

#=========BIBLIOTECA========================|
#
#==========================================|

TEST-BOX (OPCIONAL)

Todos os testes 'Globais' do programa devem ser mantidos aqui. Exemplo (Usuário é root?, Programa existe no sistema?, Usuário tem internet?, Dispositivo está montado?) etc...

 #=========TESTES===========================|
 #
 #==========================================|


Separador

A linha separadadora é a responsável por separar o 'Entrada' 'Cabeçalho' 'Corpo Inicial' do programa em Si.
Este separador deve ter '80 Colunas'.

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