Shell script directorio actual?


¿Qué es el directorio actual de shell script? I este directorio actual desde el que lo llamé? ¿O este directorio donde se encuentra script?

Author: Suzan Cioc, 2012-03-27

4 answers

El directorio actual(inicial) del script de shell es el directorio desde el que ha llamado al script.

 13
Author: Merouane KHALILI,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-03-29 08:23:14

Como ya se mencionó, la ubicación será desde donde se llamó al script. Si desea tener la referencia del script es la ubicación de instalación, es bastante simple. A continuación se muestra un fragmento que imprimirá el PWD y el directorio instalado

#!/bin/bash
echo "Script executed from: ${PWD}"

BASEDIR=$(dirname $0)
echo "Script location: ${BASEDIR}"
 75
Author: krg,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-10-06 17:05:28

La mayoría de las respuestas obtienen la ruta actual y son sensibles al contexto. Para ejecutar el script desde cualquier directorio, utilice el siguiente fragmento de código.

DIR="$( cd "$( dirname "$0" )" && pwd )"

Al cambiar los directorios en un subshell, podemos llamar a pwd y obtener la ruta correcta del script independientemente del contexto.

Luego puedes usar $DIR como "$DIR/path/to/file"

 18
Author: saada,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-15 00:37:36

Puede hacer esto usted mismo comprobando la salida de pwd al ejecutarla. Esto imprimirá el directorio en el que se encuentra actualmente. No el guión.

Si su script no cambia de directorio, imprimirá el directorio desde el que lo ejecutó.

 7
Author: keyser,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-06-19 09:30:31