linux shell 編程for選好講解
for循環對一個變量的可能的值都執行一個命令序列。賦給變量的幾個數值既可以在程序內以數值列表的形式提供,也可以在程序以外以位置參數的形式提供。for循環的一般格式爲:
for 變量名 [in 數值列表]do
若干個命令行
done
變量名可以是用戶選擇的任何字符串,如果變量名是var,則在in之後給出的數值將順序替換循環命令列表中的$var。如果省略了in,則變量var的取值將是位置參數。對變量的每一個可能的賦值都將執行do和done之間的命令列表。
下面的示例會把A B C分別打印到屏幕上:
#!/bin/sh
for var in A B C ; do
echo "var is $var"
done
for i in $(seq 10); do
for i in `seq 10`; do
for j in {1..10}; do
for k in $(ls *.txt); do
下面是一個實用的腳本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和 webgrep.rpm。
for循環的第二種用法
for((賦值;條件;運算語句))
for((i=1;i<=10;i++))
轉自:http://c.biancheng.net/cpp/html/1502.html