Shell loop

loop

loop表达式:

while ...; do

....

done

  while-loop 将运行直到表达式测试为真。will run while the expression that we test for is true.

关键字"break" 用来跳出循环。而关键字”continue”用来不执行余下的部分而直接跳到下一个循环。

  

for-loop表达式查看一个字符串列表 (字符串用空格分隔) 然后将其赋给一个变量:

for var in ....; do

  ....

done

在下面的例子中,将分别打印ABC到屏幕上:

#!/bin/sh

for var in A B C ; do

  echo "var is $var"

done

下面是一个更为有用的脚本showrpm,其功能是打印一些RPM包的统计信息:

#!/bin/sh

# list a content summary of a number of RPM packages

# USAGE: showrpm rpmfile1 rpmfile2 ...

# EXAMPLE: showrpm /cdrom/RedHat/RPMS/*.rpm

for rpmpackage in $*; do

 if [ -r "$rpmpackage" ];then

  echo "=============== $rpmpackage =============="

  rpm -qi -p $rpmpackage

 else

  echo "ERROR: cannot read file $rpmpackage"

 fi

done

  这里出现了第二个特殊的变量$*,该变量包含了所有输入的命令行参数值。

如果您运行showrpm openssh.rpm w3m.rpm webgrep.rpm

此时 $* 包含了 3 个字符串,即openssh.rpm, w3m.rpm and webgrep.rpm.

原文地址:https://www.cnblogs.com/greencolor/p/1675192.html