Пробовал передавать эти значения как "$1", но не получилось.
И что у вас не получилось? Полагаю, вы забыли экранировать пробел при вызове? Есть 2 варианта:
1)
seq $1
# вызов (обратите внимание на кавычки! Без них в $1 попадёт лишь "0", а "100" - в $2):
скрипт "0 100"
2)
seq "$1" "$2"
# не забудьте исправить проверку количества параметров
# вызов:
скрипт 0 100
Здесь:
if [ $# -ne 1 ] ...
вы проверяете, сколько параметров было передано скрипту, и вываливаетесь с сообщением 123, если не один.
Здесь:
for i in `seq "$2" "$3"`
вы пытаетесь использовать _второй_ и _третий_ параметры. Очевидно, что если они есть, то скрипт уже вывалился из-за проверки выше.