[问题] 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