Класс!) Скажу пока что, что оба варианта легко ломаются тривиальным способом:
test.sh 'вы забыли про пробелы'
test.sh 'вы' 'забыли' 'про' 'пробелы'
Правда, из-за специфики вывода на экран в варианте valrust будет незаметно, что оно сломалось, но тем не менее) В остальном вариант valrust более-менее ок, а вот в варианте ALiEN175 есть одна супер нетривиальная проблема. Ну, кроме того что надо было использовать массивы)) Никогда не сохраняйте множественные значения в строковые переменные, если можете этого не делать - массивы значительно упрощают жизнь и избавляют от проблем с тем, что, например, в ваших переменных могут быть пробелы) И continue последней операцией цикла не нужен, конечно, оно и так там сделает continue, это ж цикл.
Про нетривиальную проблему напишу позже, если её никто другой не найдёт.