Escribí un script de bash para iniciar directamente el eclipse desde diferentes lugares de trabajo. Cada lugar de trabajo contiene el script, después de ejecutarlo, eclipse se inicia con el conjunto de espacios de trabajo correspondiente.
#!/bin/bash
# relative path
#ECLIPSE_DIR='../../'
ECLIPSE_DIR='/Users/mike/Development/java/'
ECLIPSE="${ECLIPSE_DIR}eclipse/eclipse.app"
AUTHOR='mike'
# current directory is workspace
WORKSPACE=`pwd`
echo "WORKSPACE = $WORKSPACE"
# start eclipse from current directory
#open -n $ECLIPSE --args -data $WORKSPACE -vmargs -Duser.name='$AUTHOR'
El script está funcionando, cuando lo ejecuto desde la terminal. Pero cuando hago doble clic en él, utiliza el directorio de inicio como directorio de trabajo y, por lo tanto, inicia eclipse no desde el directorio que contiene el script.
Al parecer los scripts se ejecutan desde ~/.
, que es la causa de mi problema. ¿Qué puedo hacer para arreglar esto? ¿O cómo puedo cambiar mi script para obtener el comportamiento deseado?
/
Respuestas:
Si su script está almacenado en
~/workspaces/myproject/launch.sh
y desea estar en ese directorio cuando ejecute, cambie a ese directorio, puede obtener el directorio donde se guarda el script con este forro:Así que las primeras líneas de tu script se convierten en:
Esto lo colocará en el directorio donde se almacena el script, sin importar cómo lo ejecute.
Si desea obtener más información sobre cómo detectar la ubicación en el disco de un script en el momento de la ejecución Ver esta excelente respuesta de StackOverflow. .
fuente