for循环语法使用举例

for语句使用举例,可参考此网址http://www.cnblogs.com/chaoguo1234/p/5720949.html

使用字面常量列表作为List

#!/bin/bash
##filename:for1--constant_as_list.sh
#使用字面列表作为List
for x in centos ubuntu gentoo opensuse
do
        echo "$x"
done
#若列表项中包含空格则必须使用引号括起来
for x in Linux "Gnu Hurd" FreeBSD "Max OS X"; do echo "$x" ; done
for x in ls "df -Ph" "du -sh"
do echo "==$s==" ; eval $x ; done

for循环语法使用举例_第1张图片

关于脚本中eval的用法可见http://blog.csdn.net/w_ww_w/article/details/7075867


使用变量列表作为List

#!/bin/bash
##filename:for1--variable_as_list.sh
#使用变量作为List
i=1 ; weekdays="Mon Tue Wed Thu Fri"
for day in $weekdays ; do
        echo "Weekday $((i++)):$day"
done
for循环语法使用举例_第2张图片

使用位置参数$@ 作为List

#!/bin/bash
##filename:for3--pp_as_list.sh
#使用位置参数变量$@ 作为List, in $@ 可以省略
i=1
for day ; do
        echo -n "Positional parameter $((i++)):day"
        case $day in
                [Mm]on|[Tt]ue|[Ww]ed|[Tt]hu|[Ff]ri)     echo "(weekday)" ;;
                [Ss]at|[Ss]un)                          echo "(WEEKEND)" ;;
                *)                                      echo "(Invalid weekday)"  ;;
        esac
done

for循环语法使用举例_第3张图片


使用文件名作为List

#!/bin/bash
#filename:for4--filename_as_list.sh
#功能:成批修改文件扩展名
#将当前目录下所有以($1)为后缀的文件改为以($2)为后缀的文件
if [ $# -eq 2 ]; then
    for fn in *.$1 ; do
            mv "$fn" "${fn%${1}}${2}"    #或 mv "$fn" "${fn/%.${1}/.${2}}"
    done
    else
            echo "Usage: $0  "
            echo "Exmaple: $0 txt doc"
    fi
~ 
for循环语法使用举例_第4张图片

使用命令的值执行结果作为List

#!/bin/bash
##filename:for5--command_output_as_list.sh
#使用命令的执行结果作为List
i=1
for username in `awk -F":" '{print $1}' /etc/passwd`
do  echo "Username $((i++)):$username"  ; done

for line in $(egrep -v "^$|^#" files.txt) ; do  echo "$line"  ; done

for suffix in $(seq 131 132) ; do ping -c 1 "192.168.219.${suffix}"  ; done
for循环语法使用举例_第5张图片

你可能感兴趣的:(for循环语法使用举例)