Revisé un script mío con checkbashisms y recibí las siguientes advertencias:
possible bashism in check_ssl_cert line 821 (test -a/-o):
if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then
En la sección 4.62.4 de las especificaciones POSIX encuentro
primario -a primario Realiza un binario y de los resultados de primario y primario. El operador -a tiene prioridad sobre el operador -o.
¿Por qué son -a
y se -o
consideran no portátiles?
fuente
-a
y-o
[ "x$ALTNAMES" != x -a "x$COMMON_NAME" != x ]
(aún sin especificar según POSIX pero portátil y confiable), o[ "${ALTNAMES:+x}${COMMON_NAME:+x}" = xx ]
Porque son una extensión XSI, que se puede implementar o no. Ver: http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html
fuente