20.23 如何在命令行上循环执行某条命令 https://scz.617.cn/unix/201205091722.txt Q: 我想观察一下Linux ASLR的效果,一般会这样干: $ cat /proc/self/maps | grep stack bf93b000-bf950000 rw-p bf93b000 00:00 0 [stack] $ cat /proc/self/maps | grep stack bfb55000-bfb6b000 rw-p bfb55000 00:00 0 [stack] $ cat /proc/self/maps | grep stack bfadf000-bfaf4000 rw-p bfadf000 00:00 0 [stack] 从中可以看出stack地址确实被随机化了。但这样手工执行3次同样的命令,太蠢了。 有什么办法在命令行上循环执行某条命令? A: scz@nsfocus $ for i in `seq 0 1 5`;do echo $i;done 0 1 2 3 4 5 $ for i in $(seq 0 2 8);do echo $i;done 0 2 4 6 8 seq FIRST INCREMENT LAST "man seq"了解更多细节。 $ for i in `seq 0 1 2`;do cat /proc/self/maps | grep stack;done bfb4d000-bfb62000 rw-p bfb4d000 00:00 0 [stack] bfe1a000-bfe2f000 rw-p bfe1a000 00:00 0 [stack] bfe20000-bfe36000 rw-p bfe20000 00:00 0 [stack] D: lzx $ for i in {0,1,2};do echo $i;done 0 1 2 $ for i in 0 1 2;do echo $i;done 0 1 2 A: zd@nsfocus 这个最高效: $ for ((i=0;i<3;i++));do echo $i;done 0 1 2 $ for ((i=0;i<6;i+=2));do echo $i;done 0 2 4