Me he dado cuenta de que a veces los scripts de envoltura usarán ${1:+"[email protected]"}
para los parámetros en lugar de solo "[email protected]"
.
Por ejemplo, http://svn.macosforge.org/repository/macports/trunk/dports/editors/vim-app/files/gvim.sh utiliza
exec "$binary" $opts ${1:+"[email protected]"}
¿Alguien puede romper ${1:+"[email protected]"}
abajo en Inglés y explicar por qué sería una ventaja sobre llano "[email protected]"
?
Ah ha. Sí, al menos según http://google.com/codesearch, la notación que mencionaste es mucho más común. Veo 191,000 resultados para $ {1 + "$ @"} (es decir, sin dos puntos) frente a 173 resultados para $ {1: + "$ @"}.Por supuesto, la cita de "man bash" tiene dos puntos. Entonces quizás usar el colon no es un error. . . –
El colon es una prueba diferente: busca una cadena no vacía. Se usa con más frecuencia en conexión con un env var que debe tener un valor: $ {ENVVAR: + "- value = $ ENVVAR"} o lo que sea. Esto crea un argumento -value = any solo si ENVVAR se establece en una cadena no vacía. –