for的语法结构如下:
一、
for 变量 in 串行
do
命令区域
done
二、
for(( ; ;))
do
命令区域
done
实际使用中的例子
第一种情况,可以直接写入字符串
panda@panda-pc:~/Code/Shell$ cat for_test.sh
#! /bin/bash
#简单的for循环
for i in 1 2 3 4 5
do
echo $i
done
第二种情况,可以写变量名
panda@panda-pc:~/Code/Shell$ cat for_test1.sh
#! /bin/bash
IFS=':'
PL="root:x:0:0:root:/root:/bin/bash"
for f in $PL
do
echo $f
done
第三种情况,可以写命令
panda@panda-pc:~/Code/Shell$ cat for_test4.sh
#! /bin/bash
DIR="/etc"
i=0
for f in $(ls $DIR)
do
i=i+1
echo -n "文件i:$f".'\t'
done
注:但是对于awk中的语法,有些不同
panda@panda-pc:~/Code/Shell/Interview_questions$ awk '{a[$1]=a[$1]" "$2}END{for(i in a)print $i,a[i]}' data
李四 90 78 90
李四 90 88 99
李四 90 77 90
李四 90 88 80
panda@panda-pc:~/Code/Shell/Interview_questions$ awk '{a[$1]=a[$1]" "$2}END{for(i in a)print i,a[i]}' data
陈涛 78 90
王五 88 99
李四 77 90
张三 88 80
两者的差别就是一个输出的时候加$了,一个没有加$。