[問題] shell for loop

作者: cff0000ff (screct)   2014-06-26 23:47:11
小弟新公司的伺服器大概是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
這類的沒有辦法執行
所以在寫程式上遇到很多困難
想請問版上的高手有沒有解法
感激不盡
作者: p2k (pank)   2014-06-26 23:51:00
換個 shell 試試
作者: cff0000ff (screct)   2014-06-26 23:54:00
我們這科可能更改的權限沒有
作者: rickieyang (Rickie Yang)   2014-06-26 23:56:00
i=0while [ $i -lt 100 ]doOOXXi=`expr $i + 1`done
作者: rehon   2014-06-27 00:17:00
作者: jokester (蠻王科科)   2014-06-27 01:33:00
也可試試 for i in $(seq 1 100); do OOXX; done或fo i in {1..100}; dofo => for
作者: lantw44 (#######################)   2014-06-27 15:27:00
並不是每個系統都有 seq也不是每個 shell 都支援 {1..100}我覺得上面那個 while 會是比較好的解法不過 expr 那行因為每次都要執行外部的可執行檔因此迴圈比較長的時候可能效率不太好可以考慮改用 $(( $i + 1 ))
作者: Rhinocero (愛火快滅了)   2014-06-28 04:07:00
HP-UX預設應該是Bourne shell,不是BASH,有些語法不相容
作者: carylorrk (carylorrk)   2014-07-04 19:46:00
for i in `seq 100`

Links booklink

Contact Us: admin [ a t ] ucptt.com