Я проверил свой сценарий с контрбашизмами и получил следующие предупреждения:
possible bashism in check_ssl_cert line 821 (test -a/-o):
if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then
В разделе 4.62.4 спецификаций POSIX я нахожу
первичный-первичный Выполняет двоичный файл и результаты первичного и первичного. Оператор -a имеет приоритет над оператором -o.
Почему -a
и -o
считаются непереносными?
источник
-a
и-o
[ "x$ALTNAMES" != x -a "x$COMMON_NAME" != x ]
(все еще не определено в соответствии с POSIX, но переносимо и надежно), или[ "${ALTNAMES:+x}${COMMON_NAME:+x}" = xx ]
Потому что они являются расширением XSI, которое может быть или не быть реализовано. См .: http://pubs.opengroup.org/onlinepubs/009695399/utilities/test.html.
источник