2011-11-09 13 views
6

Estoy buscando el código de otra persona y no estoy seguro de lo que esto significa. Es una llamada variable VARIABLE+set que es un nombre de variable extraño ya que tiene un +, o se evalúa y es difícil para Google porque tiene $ {} en él;

+0

Esta notación se usa a menudo en los scripts de configuración generados por GNU Autoconf. – anol

Respuesta

7

Tomó algún tiempo, pero yo encontró un link explicando qué hace esto. Es una forma de sustitución de parámetro bash que evaluará a "set" si se ha establecido $VARIABLE y en caso contrario se ha establecido nulo. Esto le permite comprobar si una variable se establece de la siguiente manera:

if [ -z "${VARIABLE+set}" ] ; then 
    echo "VARIABLE is not set" 
fi 

También es interesante observar que ${VARIABLE+set} solo puede ser tan fácilmente ${VARIABLE+anything}. La única razón para usar + establecer es porque es un poco más de auto-documentación (aunque no lo suficiente como para evitar que haga esta pregunta).

+0

Por cierto, esto no es solo una característica de bash, es parte del estándar POSIX para lenguajes de comandos de shell: http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_06_02 –

+0

Y disponible prácticamente desde la comienzo de las conchas de Unix, es decir, la Bourne Shell. – shellter

Cuestiones relacionadas