Ir direto ao conteúdo

Essa página é direcionada a programadores Shell que estão interessados em fazer uma função nos moldes das Funções ZZ.

Siga o roteiro aqui descrito e nos envie sua função. Ela entrará no Repositório Extra e poderá fazer parte do pacote oficial das Funções ZZ.

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
# Autor: Fulano da Silva <fulano@silva.com>
# Versão: 1
# Uso: zzchaves
# Ex.: zzchaves
# --------------------------------------------------
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@silva.com>
Versão: 1
Uso: zzchaves
Ex.: zzchaves

$

:)

Agora basta colocar a sua função no arquivo "~/.zzextra" e utilizá-la normalmente, como se fosse uma função ZZ "oficial".

5. Disponibilize para a comunidade

Sua função pode ser útil para outras pessoas? Então a submeta para inclusão no Repositório Extra.

Mande um e-mail para o fórum com sua função em anexo. Atenção, mande como anexo e não no corpo da mensagem para evitar problemas com a cópia do código pelo mouse.

Dicas


« Anterior Próxima »