¿Hay un comando para ir dentro de un script bash .sh
que proporcionará la ruta completa al directorio que contiene ese script?
Respuestas
¿Demasiados anuncios?Vea las respuestas en Obtener el directorio fuente de un script Bash desde el propio script . El aceptado recomienda
#!/bin/bash
DIR="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
pero leer todas las respuestas ofrece muchas alternativas (e información sobre cómo funcionan los shells).
Las respuestas aquí no siempre contienen las mejores prácticas, así que si usted sólo desea que el directorio se hizo eco en la pantalla (aun cuando contiene espacios):
#!/bin/bash
echo "My Script is being run from here: $(dirname "$0")"
Si usted desea en una variable y desea .
ampliado a la ruta de acceso completa, usted necesita GNU Readlink primero así:
- Instalar homebrew
-
Instalar GNU CoreUtils:
brew install coreutils
-
Utilice la siguiente secuencia de comandos:
#!/bin/bash szMyPath=$(dirname "$0") if [[ $szMyPath =~ ^. ]]; then szMyPath="$(dirname "$(greadlink -f "$0")")" fi echo "$szMyPath"