Shell中while循环的done 后接一个重定向<
2016-11-11 15:40
363 查看
读文件的方法:
第一步: 将文件的内容通过管道(|)或重定向(<)的方式传给while
第二步: while中调用read将文件内容一行一行的读出来,并付值给read后跟随的变量。变量中就保存了当前行中的内容。
例如读取文件/sites/linuxpig.com.txt
1)管道的方式:
2)重定向的方式:
2.1 利用重定向符<
2.2 利用文件描述符(0~9)和重定向符 <
第一步: 将文件的内容通过管道(|)或重定向(<)的方式传给while
第二步: while中调用read将文件内容一行一行的读出来,并付值给read后跟随的变量。变量中就保存了当前行中的内容。
例如读取文件/sites/linuxpig.com.txt
1)管道的方式:
cat /sites/linuxpig.com.txt |while read LINE do echo $LINE done 当然也可以将cat /sites/linuxpig.com.txt 写成一些复杂一些的,比如: 示例1: find -type f -name "*.txt" -exec cat |while read LINE do echo $LINE done 可以将当前目录所有以 .txt 结尾的文件读出 示例2: grep -r "linuxpig.com" ./ | awk -F":" '{print $1}' | cat |while read LINE do echo $LINE done 可以将含有 "linuxpig.com" 字符串的所有文件打开并读取。。 示例没有实际测试,如果使用请先测试。。。。。:-)
2)重定向的方式:
2.1 利用重定向符<
while read LINE do echo $LINE done < /sites/linuxpig.com.txt
2.2 利用文件描述符(0~9)和重定向符 <
exec 3<&0 #先将文件描述符0复制到文件描述符3,也就是给文件描述符0做个备份 exec 0</sites/linuxpig.com.txt #读文件到文件描述符0 while read LINE # 此变量是读来自stdin(即描述符0)的数据 do echo $LINE done exec 0<&3 #将文件描述符3复制给文件描述符0(恢复0从键盘读入)
相关文章推荐
- Shell中while循环的done 后接一个重定向<
- [shell]while read line do done < file
- Linux下shell中的while循环语句
- 编程之美里的一个绝妙的双层while循环
- Linux/shell命令的实际应用——while;do;循环执行脚本
- 使用while循环和折半法查找一个整数是否在一个排序的int类型数组中
- Shell 编程7(循环语句while)
- shell 循环 for while until ....
- Shell for&while 循环详细总结
- Shell 学习(七、循环语句的学习(for和while))
- C#--第2周实验--任务四--编写一个控制台应用--分别使用for,while,do-while循环语句计算 n!
- Shell for&while 循环详细总结
- shell 关于 while 循环中赋值的问题
- shell for&while 循环详细总结
- Shell while 循环
- shell 知识点补充(5)-case . in .esac/function/while done/until done
- shell脚本怎样表示一个for循环
- C#中for,foreach,while等循环的一个缺点
- 十几行代码写的一个<端口重定向>程序(nodejs)
- Shell for&while 循环详细总结