Чтобы получить только имена пользователей,cut -d: -f1
Чтобы получить случайную строку, используйтеshuf -n 1
Так:
cut -d: -f1 file | shuf -n 1
Я предлагаю создать функцию, возможно называемую "IsInt", которая возвращает true, если переданные параметры являются числовыми. Тогда вы бы сказали
if IsInt "$2" && IsInt "$3" ; then
...
fi
Затем у вас есть более простая задача создания «IsInt» или просмотра существующего ответа