Потому что вызов cat тут бессмысленен. Вдвое бессмысленен, поскольку следующим пунктом идёт grep, который сам в состоянии прочесть файл, не нуждаясь в редиректе.
error_ip="$( grep "SSL_accept error" "$source_log" | egrep -o "[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}\.[[:digit:]]{1,3}" | sort | uniq -c )"
Пользователь добавил сообщение 13 Февраля 2018, 14:55:02:
И переменные надо кавычить везде, где это может повлиять на результаты исполнения скрипта.
У вас - может везде.
Особенно доставила строка "if [[ $error_ip ]]; then" - подумайте, что будет, если $error_ip пуста.