[caracas-pm] Problemas con ejecución de bash dentro de scripts perl

Ernesto Hernandez-Novich emhnemhn at gmail.com
Thu May 24 13:04:49 PDT 2007


On Thu, 2007-05-24 at 15:39 -0400, Alexis Arnal wrote:
> Saludos, estoy haciendo un programita para ejecutar unas tareas en Perl
> 
> a continuacion muestro el extracto del script que me da problemas
> 
> system("tar xvzf foo.tgz");
> system('cd foo/CA');
> 
> y este es el error:
> Can't exec "cd": No existe el fichero o el directorio at certifoo.pl
> line 27, <S TDIN> line 1.
> 
> Aparentemente no se puede ejecutar un cambio de directorio con la
> función system, probé con las rutas relativas, absolutas, comillas
> dobles, simples, con la tilde para sustituir a system y nada

Así es, porque 'cd' no es un comando sino una propiedad de cada proceso.
En el shell, 'cd' es un "builtin" que cambia de directorio. Debes usar
la función chdir() de Perl. Y en todo caso, probablemente es más
eficiente que hagas todo con Perl.
-- 
Ernesto Hernández-Novich - Linux 2.6.18 i686 - Unix: Live free or die!
Geek by nature, Linux by choice, Debian of course.
If you can't aptitude it, it isn't useful or doesn't exist.
GPG Key Fingerprint = 438C 49A2 A8C7 E7D7 1500 C507 96D6 A3D6 2F4C 85E3



More information about the caracas-pm mailing list