El problema (para usted) con $0
es que se establece en la línea de comandos lo fue el uso de invocar el guión, no la ubicación del script mismo. Esto puede hacer que sea difícil obtener la ruta completa del directorio que contiene la secuencia de comandos, que es lo que obtiene de %~dp0
en un archivo por lotes de Windows.
Por ejemplo, considere la siguiente secuencia de comandos, dollar.sh
:
#!/bin/bash
echo $0
Si desea ejecutarlo obtendrá el siguiente resultado:
# ./dollar.sh
./dollar.sh
# /tmp/dollar.sh
/tmp/dollar.sh
Así que para obtener el nombre de directorio totalmente calificado de un script que hago lo siguiente:
cd `dirname $0`
SCRIPTDIR=`pwd`
cd -
Esto funciona de la siguiente manera:
cd
al directorio de la secuencia de comandos, utilizando la ruta relativa o absoluta desde la línea de comandos.
- Obtiene la ruta absoluta de este directorio y la almacena en
SCRIPTDIR
.
- Vuelve al directorio de trabajo anterior con "
cd -
".
parece el diseño de fiesta esta característica no era una preocupación para ir a ... – n611x007