zoukankan      html  css  js  c++  java
  • 重新点亮shell————管道和重定向[二]

    前言

    简单介绍一下管道和重定向。

    正文

    1. 管道和信号一样,是进程通信的方式之一

    管道符是"|",将前一个命令执行的结果传递给后面的命令。

    比如说:

    ls -l | more

    就是第一个的输入,然后给第二个的输入,这其实更好理解。

    2.重定向符号

    一个进程默认会打开标准输入、标准输出、错误输出三个文件的描述符。

    a 输入重定向符号 "<"

    read var < /path/to/a/file

    b 输出重定向 ">" ">>" "2>" "$>"

    echo 123 > /path/to/a/file

    这里有4个不同的符号。

    第一个符号是:> 这个表示清空里面的内容,然后填入新内容。

    第二个符号:>> 这个是追加的意思。

    第三个符号:2> 如果前面的命令产生错误才会输入进去。

    第四个符号: $> 无论前面正确还是错误都输出到指定文件之中

    c 输入和输出重定向组合使用

    cat > /path/to/a/file << EOF

    I am $USER

    EOF

    下面来演示一下重定向的命令了。

    第一个 wc -l <,这个可以统计一个文件里面有多少行。

    然后输入重定向:

    echo "123" > /tmp/a.txt

    然后我们进行追加:

    echo "123" >> /tmp/a.txt

    同样来输出错误的。

    echo "123" 2> /tmp/a.txt

    如果没有错误那么会被清空。

    echo "123" 2>> /tmp/a.txt

    这样就是追加了。

    那我们来试一下错误的:

    nocmd 2>> /tmp/a.txt
    

    如果想无论是错误还是正确都输入到文件中去:

    nocmd 2>> /tmp/a.txt
    

    这样就行。

    那么看下输入和输出有什么组合可以有新效果。

    cat > /path/to/a/file << EOF
    
    I am $USER
    
    EOF
    

    就是把I am $USER 输入到 /path/to/a/file中。

    如果是追加的话,那么是:

    cat >> /path/to/a/file << EOF
    
    I am $USER
    
    EOF
    
  • 相关阅读:
    Input标签与图片按钮水平对齐解决方法
    下载网页流
    GTD
    Eclipse 运行多个Tomcat实例
    Tomcat启动超时
    Javascript:谈谈JS的全局变量跟局部变量
    影响一生的习惯
    OpenSUSE 安装并启动Tomcat
    ExtJS实战 01——HelloWorld
    eclipse快捷键
  • 原文地址:https://www.cnblogs.com/aoximin/p/15731779.html
Copyright © 2011-2022 走看看