Você manja de shell script? Então que tal fazer a sua própria função ZZ? Siga os passos abaixo e veja como é simples!

1. Faça um shell script normal

Esqueça Funções ZZ por enquanto. Primeiro faça o seu programa funcionar como um script Shell normal. Preocupe-se em testar situações inesperadas e tente antecipar erros do usuário para certificar-se que seu programa não contém bugs.

2. Coloque seu script numa função

Tudo funcionando? Então agora coloque todo o seu script dentro de uma função e declare todas as variáveis utilizadas como locais.

Supondo que o seu script é o chaves.sh, com este conteúdo:

#!/bin/bash

mensagem="Foi sem querer querendo..."
repita=3

i=0
while [ $i -lt $repita ]
do
        echo "$mensagem"
        i=$((i+1))
done

Ele deve ficar assim:

#!/bin/bash

chaves ()
{
    local mensagem="Foi sem querer querendo..."
    local repita=3
    local i=0

    while [ $i -lt $repita ]
    do
        echo "$mensagem"
        i=$((i+1))
    done
}

chaves "$@"

Note que o comando local é usando antes da declaração de cada variável. NÃO use variáveis globais dentro de funções.

A função foi declarada e a última linha é a sua chamada. Então como a lógica não foi alterada, o programa continua funcionando da mesma maneira. Se não estiver, reveja os passos e o deixe funcional.

3. Transforme a função numa ZZ

#!/bin/bash

source /usr/bin/funcoeszz   # inclui o ambiente ZZ
ZZPATH=$PWD/chaves.sh       # o PATH desse script

# ----------------------------------------------------------------------------
# Repete a fala do Chaves.
# Uso: zzchaves
# Ex.: zzchaves
#
# Autor: Fulano da Silva, @fulano
# Desde: 2000-02-22
# Versão: 1
# Requisitos: zzzz
# Tags: texto falas
# ----------------------------------------------------------------------------
zzchaves ()
{

    zzzz -h chaves "$1" && return

    local mensagem="Foi sem querer querendo..."
    local repita=3
    local i=0

    while [ $i -lt $repita ]
    do
        echo $mensagem
        i=$((i+1))
    done
}

Acompanhe o que foi feito:

Descrição do formato:

  1. Uma linha separadora com “# ----------------
  2. A URL do site pesquisado (se aplicável)
  3. A descrição do que faz a função, em uma linha, com ponto final.
  4. Pode haver linhas extras para detalhar melhor a função
  5. A linha com a sintaxe de uso “# Uso: zz...
  6. A linha com o exemplo de uso “# Ex.: zz...
  7. A linha vazia
  8. A linha com as informações do autor (nome completo e e-mail/site/twitter)
  9. A linha com a data da criação da função (formato ISO: AAAA-MM-DD)
  10. A linha com a versão da função (número inteiro e sequencial, inicia em 1)
  11. A linha com a lista de requisitos, que são outras funções zz usadas no código
  12. A linha com palavra(s) chave(s) sobre a função (tags)
  13. Uma linha separadora com “# ----------------

4. Corra para o abraço!

$ source chaves.sh
$ zzchaves
Foi sem querer querendo...
Foi sem querer querendo...
Foi sem querer querendo...
$ zzchaves -h

Repete a fala do Chaves
Uso: zzchaves
Ex.: zzchaves

$

:)

5. Disponibilize para a comunidade

Sua função pode ser útil para outras pessoas? Então adicione ela no projeto!

  1. Vai lá no GitHub
  2. Dá um fork
  3. Adicione a função nova
  4. Confira se ela se encaixa no Coding Style
  5. Confira se ela é portável
  6. Mande um pull request
  7. \o/