Shell中while循环的done 后接一个重定向< means that the While读文件的方法:
第一步: 将文件的内容通过管道(|)或重定向(<)的方式传给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从键盘读入)
分享到:
相关推荐
Linux 命令 shell 重定向 > 1、清空内容两种方式: cat /dev/null > filename > filename 2、清空文件内容,将显示结果重定向到文件 echo “this is a test” > filename 3、输入输出流组合 0:标准输入 1:标准...
Linux的"旺火"烧得已有三、四年了,但对照Windows的应用普及程度,根本还未在一个数量级上,说到底,这"旺火"中有很大程度的"虚火",使用Linux在现在还大有阳春白雪之意。Linux是一块宝玉,但在一般人眼中,它的安装...
Linux详细教程大全之shell脚本基础4-管道IO重定向等
主要给大家介绍了关于Shell中重定向的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用shell具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
您或许听过这样的论调:命令行(the mommand line)早就已经过时...这是因为,在 Unix 中,shell 可不是简单的命令解释器(典型的有 Windows 中的 DOS ),而是一个全功能的编程环境。 下面我们实现一个简单的命令解释器
编的一个linux Shell ,能实现管道,重定向,以及一些基本的Shell 编程功能.zip
许多Linux命令具有过滤特性,即一条命令通过标准输入端口接收一个文件中的数据,命令执行后产生的结果数据又通过标准输出端口送给后一条命令,作为该命令的输入数据。后一条命令也是通过标准输入端口接收输入数据。...
练习shell变量、重定向、管道等相关命令
大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出...一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出写入到标准输出,默认情况下,这也是你的终端。
网上都是推荐使用管道或者重定向方式。 但是这2种方式都有问题: 1.管道复杂且不稳定,比如关闭输入才能获取输出,容易搞死SHELL运行的程序; 2.重定向等于接管了所有输出,不利于哪些不需要隐藏方式运行需要显示...
Shell 输入/输出重定向 大多数 UNIX 系统命令从你的终端接受输入并将所产生的输出发送回到您的终端。一个命令通常从一个叫标准输入的地方读取输入,默认情况下,这恰好是你的终端。同样,一个命令通常将其输出...
基于C语言实现一个shell 程序的基本功能项目源码+详细项目说明(含管道、重定向、后台执行等功能).zip基于C语言实现一个shell 程序的基本功能项目源码+详细项目说明(含管道、重定向、后台执行等功能).zip基于C语言...
csapp_shelllab原版,已经有大部分的框架,完成几个信号处理函数和求值函数
C语言实现的shell终端,支持管道、重定向等
在上一篇关于shell编程的例子中,有讲到把shell脚本进行扩展之后重定向到一个文件中,以便进行查看和调试//www.jb51.net/article/62435.htm。但是,若是有另一种情况:只是在某些地方进行重定向,而其他地方不进行...
主要介绍了linux shell数据重定向(输入重定向与输出重定向)详细分析,需要的朋友可以参考下
I/O重定向用于捕获一个文件、命令、程序或脚本甚至代码块的输出,然后把捕获到的输出作为输入发送给另外一个文件、命令、程序或脚本等。I/O重定向最常用的方法是管道(管道符"|")。
,[]等)shell基础5:输入/输出(echo,read,cat,管道,tee,重定向等)shell基础8:文本过滤工具(grep) <br>shell基础9:awk 64<br>shell基础10:sed 94<br>Shell基础11:文件分类、合并和分割(sort,uniq,join,cut,paste...