Cuando invoca un comando en el shell, el nuevo proceso hereda el directorio de trabajo del padre. Aquí hay dos formas de obtener el directorio de trabajo:
Por "directorio desde el que se llamó" parece que se refiere a su directorio de trabajo. Puede cambiar esto dentro del script usando, por ejemplo cd, pero antes de hacerlo, pwdlo imprimirá. También es probable que esté en la variable$PWD
Si necesita el directorio de trabajo inicial después de cambiarlo, simplemente guárdelo en la parte superior de su script (antes de cambiarlo)
#!/bin/bash
initial_wd=`pwd`# ... do a lot of stuff ...# ⋮
cd "$initial_wd"
Si está utilizando esto para volver al directorio en el que comenzó, consulte también pushdy popd.
@jordanm De hecho lo hay, pero ese no será necesariamente el directorio de trabajo inicial (por ejemplo, si lo ha usado cddos veces)
derobert
$ OLDPWD es lo que necesito; Ejecuté scripts de bash desde CMD Prompt en Win7 y esta fue la variable de entorno que contenía el directorio desde el que ejecuté el script. Saludos
Respuestas:
Cuando invoca un comando en el shell, el nuevo proceso hereda el directorio de trabajo del padre. Aquí hay dos formas de obtener el directorio de trabajo:
fuente
Por "directorio desde el que se llamó" parece que se refiere a su directorio de trabajo. Puede cambiar esto dentro del script usando, por ejemplo
cd
, pero antes de hacerlo,pwd
lo imprimirá. También es probable que esté en la variable$PWD
Si necesita el directorio de trabajo inicial después de cambiarlo, simplemente guárdelo en la parte superior de su script (antes de cambiarlo)
Si está utilizando esto para volver al directorio en el que comenzó, consulte también
pushd
ypopd
.fuente
cd
dos veces)