[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [shell-script] Duvida sobre shell script
From: |
MrBiTS |
Subject: |
Re: [shell-script] Duvida sobre shell script |
Date: |
Tue, 22 Jul 2008 21:19:47 -0300 |
User-agent: |
Thunderbird 2.0.0.14 (X11/20080505) |
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
| Gostaria de saber se tem como usar classes em shell script?
| Se tiver como, alguém poderia me mostrar como se declara e coisa e tal?
O ABS, em seu apêndice A, ítem 13, tem um exemplo de uma OO fake para bash,
onde podemos notar o uso intensivo do eval. Acho
bastante válido enquanto aprendizado, mas não vejo como transformar isso numa
implementação para solucionar problemas reais.
<code>
#!/bin/bash
# Object-oriented-like programming using pure BASH only:
persons.add ()
{
~ local obj_name=$1
~ local surname=$2
~ local name=$3
~ local birth=$4
~ eval "$obj_name.set_surname ()
~ {
~ eval \"$obj_name.surname ()
~ {
~ echo \$1
~ }\"
~ }"
~ eval "$obj_name.set_name ()
~ {
~ eval \"$obj_name.name ()
~ {
~ echo \$1
~ }\"
~ }"
~ eval "$obj_name.set_birth ()
~ {
~ eval \"$obj_name.birth ()
~ {
~ echo \$1
~ }\"
~ }"
~ $obj_name.set_surname $surname
~ $obj_name.set_name $name
~ $obj_name.set_birth $birth
}
# Test database:
persons.add 1 'Tachion' 'Charles' '24/02/1979'
persons.add 2 'Quark' 'Carlos' '05/06/1958'
persons.add 3 'Proton' 'Thomas' '14/12/1997'
# Print out the test database:
for i in 1 2 3
do
~ echo $i:\ `$i.surname`,\ `$i.name`\ \(`$i.birth`\)
done
# The end!
exit 0
</code>
ACHO ( não procurei, mesmo porque não acho certo fazer o trabalho dos outros )
que no histórico da lista existe uma thread que trata
exatamente disso.
- --
Um abraço
.0. MrBiTs - address@hidden
..0 GnuPG -
http://keys.cardboard.net:11371/pks/lookup?op=get&search=0xAC37715A6DD1F186
000 http://www.mrbits.com.br
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.6 (GNU/Linux)
iD8DBQFIhnkjrDdxWm3R8YYRApnVAJsEvskK8Bccr4bX8zhLCK4rDsZnGACcDINA
FcHhpp9V1aFahJrlD+jWv0o=
=TpaA
-----END PGP SIGNATURE-----