for循环
for循环的动作方式,是将串行的元素一一取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done之间),直到所有元素取尽为止。其中,串行是一些字符串的组合,彼此用$IFS所定义的分隔字符(如空格符)隔开,这些字符串称为字段。
语法规则一如下:
for 变量 in 串行
do
命令区域
done
示例1:
for 变量 in $@ //"in $@"这一段可以省略不写,此时Bash命令会由命令行读取各个参数
do
命令区域
done
示例2:
IFS=':'
PL="root:x:0:0:root:/root:/bin/Bash"
for f in $PL
do
echo $f
done
示例3:
#! /bin/Bash
declare -i i=0
for line in $(cat /etc/passwd)
do
i=i+1
echo -n "第$i行的字段有:"
save_ifs=$IFS
IFS=':'
for f in $line
do
echo -n $f ' '
done
IFS=$save_ifs
echo
done
示例4:列出/root目录下的文件,但不包括隐藏文件。
#!/bin/Bash
DIR="/root"
for f in $(ls $DIR)
do
echo '文件:' $f
done
示例5:列出/var目录下各子目录占用磁盘空间的大小
#! /bin/Bash
DIR="/var"
cd $DIR
for f in $(ls $DIR)
do
[ -d $f ] && du -s $f
done
for语法规则2如下:
for ((初始条件;终止条件;异动项))
do
命令区域
done
示例1:
#! /bin/Bash
declare -i i sum
for ((i=1; i<=10; i+i+1))
do
let sum+=i
done
echo $sum
示例2:
for ((;1;))
do
echo '日不落'
done
for循环的动作方式,是将串行的元素一一取出,依序放入指定的变量中,然后重复执行含括的命令区域(在do和done之间),直到所有元素取尽为止。其中,串行是一些字符串的组合,彼此用$IFS所定义的分隔字符(如空格符)隔开,这些字符串称为字段。
语法规则一如下:
for 变量 in 串行
do
命令区域
done
示例1:
for 变量 in $@ //"in $@"这一段可以省略不写,此时Bash命令会由命令行读取各个参数
do
命令区域
done
示例2:
IFS=':'
PL="root:x:0:0:root:/root:/bin/Bash"
for f in $PL
do
echo $f
done
示例3:
#! /bin/Bash
declare -i i=0
for line in $(cat /etc/passwd)
do
i=i+1
echo -n "第$i行的字段有:"
save_ifs=$IFS
IFS=':'
for f in $line
do
echo -n $f ' '
done
IFS=$save_ifs
echo
done
示例4:列出/root目录下的文件,但不包括隐藏文件。
#!/bin/Bash
DIR="/root"
for f in $(ls $DIR)
do
echo '文件:' $f
done
示例5:列出/var目录下各子目录占用磁盘空间的大小
#! /bin/Bash
DIR="/var"
cd $DIR
for f in $(ls $DIR)
do
[ -d $f ] && du -s $f
done
for语法规则2如下:
for ((初始条件;终止条件;异动项))
do
命令区域
done
示例1:
#! /bin/Bash
declare -i i sum
for ((i=1; i<=10; i+i+1))
do
let sum+=i
done
echo $sum
示例2:
for ((;1;))
do
echo '日不落'
done