shell-script-pt
[Top][All Lists]
Advanced

[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-----


reply via email to

[Prev in Thread] Current Thread [Next in Thread]