• Publicidad

Cambiar de directorio en shell

¿Apenas comienzas con Perl? En este foro podrás encontrar y hacer preguntas básicas de Perl con respuestas aptas a tu nivel.

Cambiar de directorio en shell

Notapor fgalves » 2008-04-18 03:45 @198

Hola a todos,

Mi pregunta es bastante basica asi que supongo que podréis echarme un cable rápidamente.

Lo que estoy intentando es simplemente cambiar de directorio; dicho de otra forma:
- estoy en DIR1
- ejecuto un miniscript desde dicho directorio que me haga cambiar al directorio DIR2
- finaliza el script y todavía sigo en DIR1 (me refiero al shell), cuando en realidad quisiera estar en DIR2 (he ahí mi problema...)

Para ello, he probado dos soluciones:

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
`cd $directorio`
Coloreado en 0.002 segundos, usando GeSHi 1.0.8.4

(donde $directorio es una variable absoluta) que no parece funcionar

y

Sintáxis: [ Descargar ] [ Ocultar ]
Using perl Syntax Highlighting
chdir($directorio)
Coloreado en 0.001 segundos, usando GeSHi 1.0.8.4
que tampoco parece funcionar, pues el script finaliza y sigo estando en DIR1...

¿Alguien me puede echar una manita?
¡Gracias por adelantado!
¡Saludos!
Felipe
fgalves
Perlero nuevo
Perlero nuevo
 
Mensajes: 210
Registrado: 2006-09-25 13:54 @621

Publicidad

Notapor Jenda » 2008-04-19 18:30 @812

No se puede. Al menos en Perl. Tu programa solo puede cambiar su propio directorio actual. Solo puedes cambiar el directorio del shell con shell scripts ... porque esos son ejecutados por el mismo shell.
-------------------------------------------------------
- Estoy aquí para practicar español. Si te ayudó mi respuesta ayudame con un mensaje privado sobre mis faltas por favor. Seguramente habrá muchas :-)
Jenda
Perlero nuevo
Perlero nuevo
 
Mensajes: 132
Registrado: 2007-10-29 06:31 @313
Ubicación: Praga, Republica Checa

Notapor explorer » 2008-04-19 19:11 @841

Como ya te he comentado en otro foro, la ejecución de un script implica que éste herede el entorno de variables del sistema del programa padre. Puede modificar su propio entorno y la de sus propios programas hijos, pero no la del padre.

La única solución es la de que el shell ejecute instrucciones dentro de su entorno. Y eso lo puedes hacer de varias maneras:

* Definir alias: alias a="cd temp/"

* Interpretar código fuente en el entorno que queramos modificar: source script.sh. O la salida de un programa: $(perl -le 'print "cd /tmp"') (el programa Perl saca las instrucciones de cambio de directorio, que son interpretas en el propio shell con la ayuda de $( ).
JF^D Perl programming & Raku programming. Grupo en Telegram: https://t.me/Perl_ES
Avatar de Usuario
explorer
Administrador
Administrador
 
Mensajes: 14480
Registrado: 2005-07-24 18:12 @800
Ubicación: Valladolid, España


Volver a Básico

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 13 invitados