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
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
# ----------------------------------------------------------------------------
# Faz várias conversões como: caracteres, temperatura e distância.
# cf = (C)elsius para (F)ahrenheit
# fc = (F)ahrenheit para (C)elsius
# ck = (C)elsius para (K)elvin
# kc = (K)elvin para (C)elsius
# fk = (F)ahrenheit para (K)elvin
# kf = (K)elvin para (F)ahrenheit
# km = (K)Quilômetros para (M)ilhas
# mk = (M)ilhas para (K)Quilômetros
# db = (D)ecimal para (B)inário
# bd = (B)inário para (D)ecimal
# cd = (C)aractere para (D)ecimal
# dc = (D)ecimal para (C)aractere
# hc = (H)exadecimal para (C)aractere
# ch = (C)aractere para (H)exadecimal
# dh = (D)ecimal para (H)exadecimal
# hd = (H)exadecimal para (D)ecimal
# Uso: zzconverte <cf|fc|ck|kc|fk|kf|mk|km|db|bd|cd|dc|hc|ch|dh|hd> número
# Ex.: zzconverte cf 5
# zzconverte dc 65
# zzconverte db 32
#
# Autor: Thobias Salazar Trevisan, www.thobias.org
# Desde: 2003-10-02
# Licença: GPL
# ----------------------------------------------------------------------------
zzconverte ()
{
zzzz -h converte "$1" && return

local s2='scale=2'
local operacao=$1

# Verificação dos parâmetros
[ "$2" ] || { zztool uso converte; return 1; }

shift
while [ "$1" ]
do
case "$operacao" in
cf)
echo "$1 C = $(echo "$s2;($1*9/5)+32" | bc) F"
;;
fc)
echo "$1 F = $(echo "$s2;($1-32)*5/9" | bc) C"
;;
ck)
echo "$1 C = $(echo "$s2;$1+273.15" | bc) K"
;;
kc)
echo "$1 K = $(echo "$s2;$1-273.15" | bc) C"
;;
kf)
echo "$1 K = $(echo "$s2;($1*1.8)-459.67" | bc) F"
;;
fk)
echo "$1 F = $(echo "$s2;($1+459.67)/1.8" | bc) K"
;;
km)
echo "$1 km = $(echo "$s2;$1*0.6214" | bc) milhas"
;;
mk)
echo "$1 milhas = $(echo "$s2;$1*1.609" | bc) km"
;;
db)
echo "obase=2;$1" | bc -l
;;
bd)
echo "$((2#$1))"
;;
cd)
printf "%d\n" "'$1"
;;
dc)
echo -e $(printf "\\\x%x" $1)
;;
ch)
printf "%x\n" "'$1"
;;
hc)
echo -e "\x${1#0x}"
;;
dh)
printf '%x\n' "$1"
;;
hd)
printf '%d\n' "0x${1#0x}"
;;
esac
shift
done
}

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

r672 by aureliojargas on Mar 28, 2012   Diff
lint: zzconverte: antigo comentários
para arrumar a sintaxe no TextMate não
é mais necessário, o editor resolveu
seu bug.
r668 by aureliojargas on Mar 28, 2012   Diff
lint: removendo espaços inúteis.
r626 by nandu88 on Feb 24, 2012   Diff
Conversões caractere->hexa e vice-
versa na zzconverte
All revisions of this file

File info

Size: 2444 bytes, 93 lines
Powered by Google Project Hosting