Me gustaría saber si es posible cambiar el directorio de la terminal actual desde donde estoy ejecutando mi script de ruby.Cómo (terminal) cd en la carpeta de la secuencia de comandos de ruby
Por ejemplo, si estoy ejecutando el script desde $HOME
en el terminal, me gustaría hacer un cd en $HOME/mydir
al final del script.
He intentado un par de cosas, pero siempre encuentro en la misma dirección donde se inició el guión.
cosas que he intentado:
Dir.chdir(mydir)
%[cd mydir]
que realmente hacen de cambio de directorio, pero sólo en el hilo de la ejecución del script. Cuando finaliza el guión, mi ubicación actual en la terminal sigue siendo la misma que tenía antes de iniciar el guión.
He encontrado algo similar en SO, pero es Python-related y la respuesta parece negativa.
Puede preguntar por qué?
Actualmente estoy involucrado en una aplicación de línea de comandos (usando gli
) que, como punto de partida, necesita una carpeta de proyecto. Así que mi primer comando es así:
$ myfoo new project
que crea una nueva carpeta con el nombre project
en el directorio actual. Ahora, para ser capaz de trabajar con los otros comandos que necesito:
$ cd project
project$ myfoo domore
Así que era simplemente pensando que sería bueno para fundar mi propia en project
después de haber ejecutado myfoo new project
.
Como tenía miedo, no es tan fácil (no es posible en absoluto). Entonces, ¿qué pasa con el uso de un script bash que hace las llamadas ruby que quiero, en lugar del archivo estándar generado por RubyGems? ¿Es eso factible? ¿Soy tonto? ¿Debo usar eval
?
Gracias por las respuestas. Pero me temo que nadie es aceptable. Probablemente la pregunta no fue :).
Parece poco probable que pueda hacer esto. Todas las llamadas al sistema desde ruby operan en un hilo diferente de su script/shell, y no tendrían ningún efecto en la ubicación actual. ¿Para qué esperas usar esto? –
@ Douglas-F-Shearer: He ampliado mis razones un poco en la respuesta –
solo por curiosidad, ¿por qué no funcionó mi respuesta? He usado esta técnica un par de veces, y no estoy seguro de cómo no se ajusta a tu situación. – Ian