expr 2 + 2
делает то что надо. echo не нужно, нужны пробелы между аргументами. Но пользоваться этой командой не надо, конструкция для арифметических целых выражений $(()) из posix-стандарта.
===
while test "$vibor" != 5; do
read vibor
done
отлично работает, если нажать 5 и Enter. -ne для сравнения чисел. Для работы переменная vibor должна быть инициализирована в целое число:
vibor=0
while test "$vibor" -ne 5 ; do
...
Помни, что если экспериментируешь в терминале, то значение vibor сохраняется. Один раз ему присвоилось значение 5 и следующий цикл будет выходить сразу же.