的{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 –