的{0..10..2}
语法只支持在猛砸4
对于猛砸3,使用语法来代替:
$ for ((i=0; i<=10; i+=2)); do echo "Welcome $i times"; done
Welcome 0 times
Welcome 2 times
Welcome 4 times
Welcome 6 times
Welcome 8 times
Welcome 10 times
你可以看到什么是在3.2猛砸发生,如果你删除的台阶部支架扩张:
bash-3.2$ for i in {0..10..2}; do echo "i=>$i"; done
i=>{0..10..2}
bash-3.2$ for i in {0..10}; do echo "i=>$i"; done
i=>0
i=>1
i=>2
i=>3
i=>4
i=>5
i=>6
i=>7
i=>8
i=>9
i=>10
但猛砸4,它可以作为你期望它来:
bash-4.3$ for i in {0..10..2}; do echo "i=>$i"; done
i=>0
i=>2
i=>4
i=>6
i=>8
i=>10
编辑
弥敦道威尔逊正确地指出,这很可能是负的Bash选项braceexpand
的结果。
您可以set设置这个值:
$ echo $SHELLOPTS
braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor:posix
$ for i in {0..5}; do echo "i=>$i"; done
i=>0
i=>1
i=>2
i=>3
i=>4
i=>5
$ set +B
$ echo $SHELLOPTS
emacs:hashall:histexpand:history:interactive-comments:monitor:posix
$ for i in {0..5}; do echo "i=>$i"; done
i=>{0..5}
尝试'为我$(seq 0 2 10)' –
你是否运行脚本,猜测你正在使用sh。使用bash。 – 123
不,它告诉我这个:欢迎0次有或没有sudo ,我使用bash –