Для большей ясности стоило бы приести пример выхлопа команды
occtl --json show users
Чтобы отвечающим не приходилось ставить VPN-сервер и подключать тестовых пользователей.
Сходу видно, что вы запрашиваете результат в формате json, а затем парсите его грепами и awk'ом, что крайне бессмысленно и беспощадно. Почему бы не использовать jq для этой цели, а не пытаться забить шуруп молотком.
Приведенная вами проблема связана с тем, что, вероятно, выхлоп в виде json происходит без гарантии порядка ключей, а ваш способ доставать из него данные весьма варварский.
Да и проблемы в таком подходе на этом не ограничатся, ведь список пользователей может измениться между итерациями и даже между получаением имени и ip.
Следовало бы единоразово получить все сырые данне, а затем вытаскивать из них нужное.