My favorites | Sign in
Project Home Downloads Wiki Issues Source
Checkout   Browse   Changes    
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
# ----------------------------------------------------------------------------
# Mostra textos coloridos, sublinhados e piscantes no terminal (códigos ANSI).
# Opções: -f, --fundo escolhe a cor de fundo
# -l, --letra escolhe a cor da letra
# -p, --pisca texto piscante
# -s, --sublinhado texto sublinhado
# -N, --negrito texto em negrito (brilhante em alguns terminais)
# -n, --nao-quebra não quebra a linha no final, igual ao echo -n
# Cores: preto vermelho verde amarelo azul roxo ciano branco
# Obs.: \t, \n e amigos são sempre interpretados (igual ao echo -e).
# Uso: zzecho [-f cor] [-l cor] [-p] [-s] [-N] [-n] [texto]
# Ex.: zzecho -l amarelo Texto em amarelo
# zzecho -f azul -l branco -N Texto branco em negrito, com fundo azul
# zzecho -p -s Texto piscante e sublinhado
#
# Autor: Marcell S. Martini <marcellmartini (a) gmail com>
# Desde: 2008-09-02
# Licença: GPL
# ----------------------------------------------------------------------------
zzecho ()
{
zzzz -h echo "$1" && return

local letra fundo negrito cor pisca sublinhado
local quebra_linha='\n'

# Opções de linha de comando
while [ "${1#-}" != "$1" ]
do
case "$1" in
-l|--letra)
case "$2" in
# Permite versões femininas também (--letra preta)
pret[oa] ) letra=';30' ;;
vermelh[oa] ) letra=';31' ;;
verde ) letra=';32' ;;
amarel[oa] ) letra=';33' ;;
azul ) letra=';34' ;;
rox[oa]|rosa ) letra=';35' ;;
cian[oa] ) letra=';36' ;;
branc[oa] ) letra=';37' ;;
*) zztool uso echo; return 1 ;;
esac
shift
;;
-f|--fundo)
case "$2" in
preto ) fundo='40' ;;
vermelho ) fundo='41' ;;
verde ) fundo='42' ;;
amarelo ) fundo='43' ;;
azul ) fundo='44' ;;
roxo|rosa ) fundo='45' ;;
ciano ) fundo='46' ;;
branco ) fundo='47' ;;
*) zztool uso echo; return 1 ;;
esac
shift
;;
-N|--negrito ) negrito=';1' ;;
-p|--pisca ) pisca=';5' ;;
-s|--sublinhado ) sublinhado=';4' ;;
-n|--nao-quebra ) quebra_linha='' ;;
*) zztool uso echo; return 1 ;;
esac
shift
done

# Mostra códigos ANSI somente quando necessário (e quando ZZCOR estiver ligada)
if [ "$ZZCOR" != '1' -o "$fundo$letra$negrito$pisca$sublinhado" = '' ]
then
printf "$*$quebra_linha"
else
printf "\033[$fundo$letra$negrito$pisca${sublinhado}m$*\033[m$quebra_linha"
fi
}

Change log

r710 by aureliojargas on Mar 29, 2012   Diff
SEGURANÇA: $1 colocado entre aspas na
chamada padrão zzzz -h de todas as
funções.
Go to: 
Sign in to write a code review

Older revisions

r486 by aureliojargas on May 20, 2011   Diff
COMBO: Arrumadas inconsistências de
espaços em branco na indentação de
várias funções. Foi usado o script
'alinhamento' para encontrar os
problemas. Estas alterações não mudam
...
r477 by aureliojargas on May 20, 2011   Diff
COMBO:
Arrumado o return de várias funções.
Agora usando return 1 quando algum
erro ocorre e return 0 quando é uma
saída OK. Outros casos onde pode haver
...
r260 by aureliojargas on Dec 21, 2010   Diff
COMBO: mudança em todas as funções
para trocar a ordem das linhas no
cabeçalho. Agora é:

- Descrição de uma linha
...
All revisions of this file

File info

Size: 2499 bytes, 76 lines
Powered by Google Project Hosting