n=1
while [ $n -le 63 ]; do
echo -n "$n "
if [ $[$n%9] -eq 0 ]; then
echo -ne "\\n"
fi
n=$[$n+1]
done
Lepiej używać "[ ]" zamiast polecenia test.
Co do problemu, to głównie chodziło o składnie warunku w if - liczby porównuje się "-eq", "-lt", "-le", ...
"==" jest tylko dla stringów, a "=" to w ogóle nie jest operator logiczny.
BTW. Inkrementuje się raczej na końcu pętli, więc nieco zmieniłem kod.
Musisz jeszcze pokombinować z wyrównywaniem liczb mających mniej cyfr. Możesz chociażby dodawać spacje dla liczb mniejszych od 10.
Żeby kod był idealny (i output wyglądał prawidłowo np. przy wrzuceniu go do pliku) należałoby jeszcze pozbywać się ostatniej spacji w wierszu. W tym celu najlepiej zamienić linię `echo -ne "\\n"` na `echo -ne "\\b\\n"`. man echo.