[11:33:04 root@centos7 data]#cat test1.sh
#!/bin/bash
echo {1..$1}
echo {1..9}
[11:30:55 root@centos7 data]#./test1.sh 9
{1..9}
1 2 3 4 5 6 7 8 9
接收变量后为什么无法正确显示呢。
[11:33:04 root@centos7 data]#cat test1.sh
#!/bin/bash
echo {1..$1}
echo {1..9}
[11:30:55 root@centos7 data]#./test1.sh 9
{1..9}
1 2 3 4 5 6 7 8 9
接收变量后为什么无法正确显示呢。
参见 man bash
这个展开发生在替换
$1
之前,此时它并不符合这一展开的形式。于是没有展开。你这个可以用 seq 命令实现: