`

Shell中 done 后接一个重定向<

阅读更多
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中的重定向.pdf

    重定向可以将数据从文件、设备或另一个命令中导入或导出。在Linux shell中,我们可以使用特殊的文件描述符来标识和操作这些数据流。 1. 标准输入(stdin)、标准输出(stdout)和标准错误输出(stderr)是Linux系统...

    shell shell练习 shell入门

    Shell是Linux和Unix系统中的命令解释器,它提供了一个用户与操作系统内核交互的界面,允许用户通过命令行执行各种操作。本篇文章将深入探讨Shell的基础知识,包括其概念、重要性、基本语法以及如何进行Shell编程练习...

    shell编程入门教程+shell脚本专家指南+UNIX.shell编程24小时教程.rar

    Shell是操作系统提供的一个接口,它允许用户输入命令,执行系统级别的任务。在Linux/Unix中,常见的Shell有Bash(Bourne-Again SHell)、Sh、Csh和Zsh等。其中,Bash是最广泛使用的Shell,我们的教程主要以Bash为例...

    shell基础入门教程

    在一个命令中嵌套另一个Shell,创建子shell: ```bash ( command1; command2 ) # 子shell执行完成后返回父shell ``` ### 11. 模式匹配与通配符 * `*` 匹配任意数量的字符 * `?` 匹配任意单个字符 * `[char1-char2]`...

    shell编程指南.doc

    Shell编程是Linux操作系统中至关重要的一个环节,它作为用户与Linux内核之间的接口,使得用户可以通过命令行来操控系统。Shell既是命令解释器,能够解释并执行用户输入的命令,同时它也是一门编程语言,提供了类似...

    shell脚本shell脚本shell脚本

    7. **重定向和管道**:Shell脚本可以使用重定向(&gt;`&lt;`)将命令的输出重定向到文件,或者使用管道(|)将一个命令的输出作为另一个命令的输入。 8. **错误处理**:通过`set -e`可以在遇到错误时让脚本立即停止执行,...

    shell脚本相关资料

    一个简单的Shell脚本通常以`#!/bin/bash`开头,这被称为Shebang,用来指定解释器。然后是变量声明、条件语句、循环结构、函数定义等。脚本中的命令以换行符分隔,可以包含系统命令、内部Shell命令和用户自定义函数...

    shell脚本编程入门

    3. **管道**:`|`用于连接两个命令,将前一个命令的输出作为后一个命令的输入。 4. **I/O重定向**:`&lt;`用于读取文件,`&gt;`用于写入文件,`&&gt;`用于同时重定向标准输出和错误输出。 5. **运算符**:包括比较运算符(-eq...

    如何在Shell脚本中逐行读取文件.doc

    这个脚本使用输入重定向 `&lt;` 读取文件 `mycontent.txt` 的每一行内容,并将其保存在变量 `rows` 中。然后,使用 `echo` 命令将每行内容输出。 方法二:使用 cat 命令和管道符 第二种方法是使用 `cat` 命令和管道符...

    shell编程教程

    Shell是Unix/Linux系统中的一个命令解释器,它作为用户和操作系统内核之间的接口。通过Shell,用户可以通过命令行输入指令,执行各种任务,包括文件管理、程序控制等。常见的Shell类型有Bash(Bourne-Again SHell)...

    shell下同时读取多个文件的方法.docx

    在上面的代码中,我们定义了一个名为 `readfiles` 的函数,该函数接受两个文件名作为参数。然后,我们使用 `exec` 命令将文件重定向到文件描述符 7 和 8。最后,我们使用 `while` 循环来读取文件的内容,并将其输出...

    Shell的详细教程

    Shell是UNIX操作系统中用户与内核之间的一个交互层,它提供了用户与系统之间的接口。在Shell中,用户可以通过输入命令来执行各种操作,如文件管理、进程管理等。Shell不仅能够执行单一的命令,还能通过脚本的方式...

    基于Linux的简单Shell程序设计

    例如,`command &gt; file`将命令的输出重定向到file中,`command &lt; file`则让command从file中读取输入。 四、管道和重用 管道`|`可以把一个命令的输出作为另一个命令的输入,实现命令间的串联。例如,`ls | grep ....

    linux shell

    Linux Shell编程是Linux系统中一个极其重要的组成部分,它充当了用户与操作系统内核之间的接口,允许用户通过命令行与系统进行交互。Shell不仅提供了一系列内置命令,还支持编写脚本,使得复杂的自动化任务变得可能...

    shell十三问

    - `|`管道连接命令,将前一个命令的输出作为后一个命令的输入。 9. **逻辑运算符** - `&&`和`||`用于连接命令,前者表示“与”,后者表示“或”。 - `!`用于逻辑非,如`[ ! -f "$FILE" ]`表示文件不存在。 10. ...

    shell脚本的demo

    管道`|`用于连接两个命令,使得前一个命令的输出成为后一个命令的输入,如:`ls | grep ".txt"`列出所有包含".txt"的文件。 9. **数组**: Bash从4.0版本开始支持数组,如: ``` fruits=("apple" "banana" ...

    Linux 中的SHELL 速查

    Linux中的Shell是操作系统与用户交互的主要接口,它是一种命令行解释器,允许用户通过文本命令来执行系统操作。本文将深入探讨Linux Shell的基础知识、常用命令、脚本编写以及一些高级特性。 一、Shell类型 在Linux...

    shell programming

    - **子shell**:在某些情况下,可能需要在一个单独的Shell环境中运行命令,这可以通过子shell实现。 ```bash (cd /tmp; ls) ``` ### 总结 Shell编程为用户提供了一个强大的工具来自动化任务、管理文件系统以及...

    Linux shell Script

    Shell脚本是Linux系统中的强大工具,可以自动化日常管理任务,提高工作效率,同时也是学习Linux系统管理和编程的一个重要切入点。 一、Shell脚本基础 1. 文件开头:一个有效的Shell脚本通常以`#!/bin/bash`或`#!/...

Global site tag (gtag.js) - Google Analytics