2010-07-23 11 views
7

¿Hay un equivalente sh de __FILE__, para darme la ruta del archivo en ejecución? Se prefieren las soluciones POSIX, bash aceptable, gracias.equivalente sh de __FILE__

+0

posible duplicado de [¿Puede un script Bash decir qué directorio se almacena en?] (Http: // stackoverflow .com/questions/59895/can-a-bash-script-tell-what-directory-its-stored-in) – rightfold

Respuesta

5

Intente utilizar $0.

+4

Esto no es equivalente a '__FILE__' si lo está haciendo en un archivo que proviene de otro archivo . – mxcl

+0

¿qué tal "qué $ 0"? –

0

Es sólo una idea:

#!/usr/bin/env bash 

# "$0" will expand to the name of the script, as called from the command line 
readlink -f $0 
+0

Eso será incorrecto si se llama al script a través de la variable $ PATH. –

+0

Todavía (ver edición)? – miku

+0

Tenga en cuenta que 'readlink' no es completamente portátil. OSX (y presumiblemente BSD en general?) Tienen una versión completamente diferente, donde '-f' no es compatible. Más bien, donde '-f' significa algo diferente (y no útil aquí). – Telemachus