代码之家  ›  专栏  ›  技术社区  ›  Arunachalam

如何在UNIX shell脚本中使用循环语句

  •  1
  • Arunachalam  · 技术社区  · 16 年前

    如何在UNIX shell脚本中使用loop语句for eg while、for do while。我用的是Putty服务器。

    7 回复  |  直到 12 年前
        1
  •  1
  •   Tom    16 年前

    for:遍历列表。

    $for i in `cat some_file | grep pattern`;do echo $i;done
    

    而循环看起来很像C。

    $ i=0;while [ $i -le 10 ];do echo $i;i=`expr $i + 1` ;done
    

    如果您只使用命令行,那么可以使用Perl,但我猜这是欺骗。

    $perl -e '$i=0;while ($i < 10){print $i;$i++;}'
    

    更多数据

    http://www.freeos.com/guides/lsst/

        2
  •  1
  •   mesut    16 年前
    #!/bin/sh
    items=(item1 item2 item3)
    
    len=${#items[*]}
    
    i=0
    while [ $i -lt $len ]; do
      echo ${items[$i]}
      let i++
    done
    
    exit 0
    
        3
  •  0
  •   Jonathan Leffler    16 年前

    除了Tom提到的“for”和“while”循环之外,还有一个“until”循环(至少在经典的Bourne和Korn Shells中,也可能在MacOS X上的bash中,以及其他地方)。

    until [ -f /tmp/sentry.file ]
    do
        sleep 3
    done
    

    与测试命令失败时终止的“while”循环不同,此循环在测试命令成功时终止。

    还请注意,您可以测试一系列命令;最后一个命令是一个计数的命令:

    while x=$(ls); [ -n "$x" ]
    do
        echo $x
    done
    

    这将继续回送目录中的所有文件,直到它们都被删除。

        4
  •  0
  •   ghostdog74    16 年前

    到op,迭代文件

    for file in *
    do
     echo "$file"
    done
    

    生成计数器

    for c in {0..10}
    do
     echo $c
    done 
    
        5
  •  0
  •   koopajah MKumar    12 年前
    using for loop
    max=10
    for (( i=0; i<=$max; i++ ));
    do
    echo $i
    done
    
        6
  •  -1
  •   Venkataramesh Kommoju    16 年前

    在ksh中迭代文件

    读行时;做

    echo“文件的行$line”

    完成<filename.txt

        7
  •  -1
  •   Constantin    12 年前
    echo "sample while loop"
    i=0;
    while [ $i -le 10 ]
    do
    echo $i
     (( i++ ))
    done