Оценка не зависит от платформы (Mac или другой). Это зависит от текущих настроек локали:
$ LANG=C
$ if [[ "╝" = [█] ]]; then echo y; else echo n; fi
n
$ LANG=en_US.UTF-8
$ if [[ "╝" = [█] ]]; then echo y; else echo n; fi
y
Мы можем попытаться определить, какие локали соответствуют выражению, с помощью простого скрипта:
for i in $(locale -a)
do
export LANG=$i
echo -n "LANG=$LANG "
if [[ "╝" = [█] ]]; then echo yes; else echo no; fi
done
и увидите, что локали UTF-8 соответствуют выражению. Когда для локали установлено значение UTF-8, bash интерпретирует символы UTF-8 по-разному, и это является причиной того, что результат отличается.
Тем не менее, я думаю, что это ошибка, потому что она должна возвращать false, даже если установлена локаль с поддержкой UTF-8.