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 (a) dominio com>
# Versão: 1
# Licença: GPL
# ----------------------------------------------------------------------------
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:

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
Autor: Fulano da Silva <fulano (a) dominio com>
Versão: 1
Uso: zzchaves
Ex.: zzchaves

prompt$

:)

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/