Это потому, что вы передаете вывод цикла while через grep "java.lang.Exception"
.
Выход echo $line | awk -F"/" '{print $4}'
равен CCC
. Когда это передано по grep
, ничего не печатается, потому что CCC
не соответствует шаблону поиска.
Попробуйте удалить | grep "java.lang.Exception"
, и вы увидите, что выход вашего цикла выходит правильно.
Альтернативный подход может заключаться в том, чтобы удалить цикл while и вместо этого просто использовать:
grep "java.lang.Exception" $log | awk -F"/" '{print $4}'