0
点赞
收藏
分享

微信扫一扫

linux中shell循环操作及案例


循环指令

–if
–while
–for
–case

linux中shell循环操作及案例_bash


linux中shell循环操作及案例_i++_02

案例1

1.用户给定路径
2.输出文件大小最大的文件
3.递归子目录

#/bin/bash
oldIFS=$IFS
IFS=$'\n'

for i in `du -a $1 | sort -nr`; do
filename=`echo $1 | awk `{print $2}``
if [ -f $filename ]; then
echo $filename
exit 0
fi
done
IFS=$oldIFS
echo "not find ...."
exit

案例2:

1.循环遍历文件每一行:流程控制语句
2.定义一个计数器num
3.打印num正好是文件行数

首先创建文件test.txt,并且写入内容如下:

touch test.txt
vi

#!/bin/bash
# 第一种写法

oldIFS=$IFS
IFS=$'\n'
num=0
for i in `cat test.txt` ; do
echo $1
((num++))
done
echo num: $num
IFS=$oldIFS

#!/bin/bash
# 第二种写法

num=0
lines=`cat test.txt | wc -l`
for ((i=1; i<= lines; i++)); do
head -$i test.txt | tail -1
((num++))
done
echo num: $num

#!/bin/bash
# 第三种写法

exec 8<&0
exec 0< test.txt
num=0
while read line; do
echo $line
((num++))
done
echo num: $num
exec 0<&8

#!/bin/bash
# 第四种写法

num=0
while read line; do
echo $line
((num++))
done 0< test.txt
echo num: $num

#!/bin/bash
# 第五种写法,不过这种写法num值会不正确,因为开启了两个子终端

num=0
cat text.txt | while read line; do
echo $line
((num++))
done
echo num: $num


举报

相关推荐

0 条评论