Sprawdziłem mój skrypt za pomocą checkbashism i otrzymałem następujące ostrzeżenia:
possible bashism in check_ssl_cert line 821 (test -a/-o):
if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then
W sekcji 4.62.4 specyfikacji POSIX znajduję
pierwszorzędny -a pierwotny Wykonuje plik binarny oraz wyniki pierwotny i pierwotny. Operator -a ma pierwszeństwo przed operatorem -o.
Dlaczego są -a
i są -o
uważane za nieprzenośne?
źródło
-a
i-o
[ "x$ALTNAMES" != x -a "x$COMMON_NAME" != x ]
(nadal nieokreślony zgodnie z POSIX, ale przenośny i niezawodny) lub[ "${ALTNAMES:+x}${COMMON_NAME:+x}" = xx ]
Ponieważ są one rozszerzeniem XSI, które może być zaimplementowane lub nie. Zobacz: http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html
źródło