Cómo cambiar el directorio usando el script

10

Tengo este script

#!/bin/bash
cd /home/user/somedir
pwd

funciona como se esperaba, pero me gustaría que este script me transporte a / home / user / somedir, pero me quedo en el mismo directorio.

¿Cómo escribir un script que me transportará (en gnome-terminal) a / home / user / somedir?

Adaptador UA
fuente

Respuestas:

14

Necesitas sourcetu guión. De lo contrario, se ejecutará en una subshell separada, cambiando el directorio de trabajo de la subshell pero no del shell en el que se ejecuta.

Para obtenerlo:

. myfile.sh

o

source myfile.sh

Puedes leer más aquí

danjjl
fuente
Solo iba a agregar eso ... UAdadapter si estuviera ejecutando el script shelll como sh myfile.sh o ./myfile.sh, se ejecutaría como lo describió danjil. Cualquiera de las opciones de danjil debería funcionar para usted.
itnet7
3

Usar exec bashal final

Un script bash opera en su entorno actual o en el de sus hijos, pero nunca en su entorno principal.

Sin embargo, esta pregunta a menudo se hace porque uno quiere quedarse en un indicador bash en un determinado directorio después de la ejecución de un script bash desde otro directorio.

Si este es el caso, simplemente ejecute una instancia de bash secundaria al final del script:

#!/bin/bash
cd /home/user/somedir
exec bash
Serge Stroobandt
fuente