看板 Linux 關於我們 聯絡資訊
小弟新公司的伺服器大概是30年前HP的Unix系統 最近在寫shell時碰到一些for loop沒辦法執行的困擾 for abc in a b c do OOXX done 這類的for loop他有支援 但是像 for ((int i=0;i++;i<100)) do OOXX done 這類的沒有辦法執行 所以在寫程式上遇到很多困難 想請問版上的高手有沒有解法 感激不盡 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.200.108.37 ※ 文章網址: http://www.ptt.cc/bbs/Linux/M.1403797634.A.D23.html
p2k:換個 shell 試試 06/26 23:51
cff0000ff:我們這科可能更改的權限 06/26 23:54
cff0000ff: 沒有 06/26 23:54
rickieyang:i=0 06/26 23:56
rickieyang:while [ $i -lt 100 ] 06/26 23:56
rickieyang:do 06/26 23:57
rickieyang:OOXX 06/26 23:57
rickieyang:i=`expr $i + 1` 06/26 23:57
rickieyang:done 06/26 23:57
jokester:也可試試 for i in $(seq 1 100); do OOXX; done 06/27 01:33
jokester:或fo i in {1..100}; do 06/27 01:34
jokester: fo => for 06/27 01:34
lantw44:並不是每個系統都有 seq 06/27 15:27
lantw44:也不是每個 shell 都支援 {1..100} 06/27 15:27
lantw44:我覺得上面那個 while 會是比較好的解法 06/27 15:28
lantw44:不過 expr 那行因為每次都要執行外部的可執行檔 06/27 15:31
lantw44:因此迴圈比較長的時候可能效率不太好 06/27 15:31
lantw44:可以考慮改用 $(( $i + 1 )) 06/27 15:32
Rhinocero:HP-UX預設應該是Bourne shell,不是BASH,有些語法 06/28 04:07
Rhinocero:不相容 06/28 04:07
carylorrk:for i in `seq 100` 07/04 19:46