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
关于脚本中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
使用位置参数$@ 作为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
使用文件名作为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 <SUFFIX1> <SUFFIX2>"
echo "Exmaple: $0 txt doc"
fi
~
使用命令的值执行结果作为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