Problemas al correr un SHELL

Iniciado por Skeletron, 28 Noviembre 2013, 23:18 PM

0 Miembros y 1 Visitante están viendo este tema.

Skeletron

Hola gente.
Soy bastante novato en esto, así que espero explicarme bien.

Daré un ejemplo de algo que hago en Windows, y no puedo hacer en Linux, y me gustaría que me digan como hacerlo.

En Windows, creo un archivo "goto.bat" el cual contiene las siguientes lineas:
cd C:/Users/Noel/Fotos

Ok... Luego abro una consola de comandos, y escribo "goto.bat" y preciono ENTER... Se ejecuta el goto.bat, y me lleva automaticamente a esa carpeta... O sea que, esté en donde esté, voy a ir a esa carpeta cuando escriba goto.bat

Ok... En Linux, creo un archivo "goto", lo pongo en /usr/bin (o /usr/local/bin... no recuerdo bien ahora) y le pongo de contenido:
#!/bin/bash
cd /var/www

Y cuando lo ejecuto, no va hacia alla....
Funciona correctamente, porque si pongo un "echo" me muestra el mensaje correctamente, así que tiene los permisos de ejecucion y demas...
Es mas... si le pongo ésto:
#!/bin/bash
cd /var/www
mkdir pepe

me creará la carpeta PEPE dentro de /var/www... Pero.... al terminar el script, mi no estaré en /var/www.

Como puedo hacer para que suceda ésto?

el-brujo

#1
la shell funciona más o menos igual, lo que varia aquí es el comportamiento del .bat, que en Windows si haces un cd abre el explorador y te lleva a esa carpeta, en Windows también va a esa carpeta, pero no abre el explorador.

¿Que es lo que quieres hacer exactamente?

seguro que si haces:

#!/bin/bash
cd /var/www
pwd


te  muestra /var/www

Quizás en tu caso sería mejor crear un alias ¿?



Skeletron

#2
Me he explicado mal.

Basicamente, yo necesito moverme muy rapidamente entre carpetas.
Ejemplo:
Estoy trabajando en /var/www/ y necesito ir rapido a /var/svn/servidores y realizar alguna tarea y luego irme rapido a /var/svn/clientes hacer algo y luego volver a /var/www

Entonces, yo quiero hacer algo así:
estando en /var/www, ejecuto el comando: "gotoservirdores" y me posiciona en /var/svn/servidores.
Estando ahí, supongamos que hago alguna tarea y luego ejecuto "gotoclientes" y me lleva a /var/svn/clientes, realizo una tarea y luego ejecuto "gotowww" y me lleva a /var/www

Quiero hacer esto porque muchas veces se me hacen lagunas en la cabeza y no recuerdo donde estaba X carpeta... entonces, con solo recordar el "goto xxx" es suficiente.

Tengo pensado crear un archivo "goto" que segun el parametor que reciba, me lleve a diferentes directorios.

el-brujo

puedes crear un alias en linux:

Código (bash) [Seleccionar]

alias gotoservirdores='cd /var/svn/servidores'
alias gotoclientes='cd /var/svn/clientes'


Ejemplos:

Postea tu .bashrc/alias/scripts/.vimrc
http://foro.elhacker.net/gnulinux/postea_tu_bashrcaliasscriptsvimrc-t331679.0.html

Skeletron

Bien. Genial.
Solucionaría mi problema para realizar "cd" de carpeta a otra.

Pero si necesito hacer mas cosas, por ejemplo, recibir parametros y demas?

Mi idea era hacer algo así:

goto -apache
y que vaya a la carpeta de APACHE
y si haces:
goto -php vaya a la carpeta donde está el php.ini
y varios mas.
Se podrá?