I want to print list of numbers from 1 to 100 and I use a for loop like the following:
Yes, that's because brace-expansion occurs before parameter expansion. Either use another shell like zsh or ksh93 or use an alternative syntax:
Standard (POSIX) sh syntax
Avoid loops in shells.
Using loops in a shell script are often an indication that you're not doing it right. Most probably, your code can be written some other way.
* 鳥哥私房菜 - 學習 Shell Script - 迴圈 (loop)
* Linux Shell Scripting Tutorial (LSST) v1.05r3 - for Loop
* Tutorialspoint - Unix - Shell Loop Control