[Perl] Porque no corre
Salvador Ortiz Garcia
sog@msg.com.mx
Mon, 7 Jan 2002 14:28:21 -0600 (CST)
On Sat, 5 Jan 2002, Jose Antonio Galicia wrote:
> On Fri, 4 Jan 2002, Benjamin Huitr=F3n Solar wrote:
>=20
> > $Terminal=3D`tty | cut -c6-11`;
> > $UserShell=3D`ps -Af | grep -v root | cut -c1-8| grep $Terminal `;
> > printf "Hola tu terminal es $Terminal y tu eres $UserShell";
> >
> >
> > Ejecutandolo desde el shell pongo lo pongo asi:
> > ps -Af | grep pts/9 | grep -v root | cut -c1-8
>=20
> =BFY si lo ejecutas igual en perl?
>=20
> =09#!/usr/bin/perl
> =09chomp($a=3D`tty`);
> =09$a =3D~ s|^/dev/||;
> =09chomp($b=3D`ps -Af | grep $a | grep -v root | cut -c1-8`);
> =09print ".$b.\n";'
>=20
> primero el grep a lo que buscas y despues eliminas lo que
> no necesitas.
Y por que tanto brinco estando el suelo tan parejo?
Es decir, para obtener dos datos est=E1s lanzando siete procesos extras,
cuando los tienes a dos llamadas de distancia:
#!/usr/bin/perl -w
use POSIX ();
$user =3D getpwuid($>);
$terminal =3D POSIX::ttyname(STDIN);
print "Eres $user en $terminal\n";
=20
Saludos
Salvador Ortiz
--=20
El conocimiento inclu=EDdo es totalmente regalado y como Linux, libre.
--------------------------------------------------------------------------