zoukankan      html  css  js  c++  java
  • shell输入/输出重定向

    command > file:将输出重定向到file

    command >> file:将输出以追加的方式重定向到file

    说明:上述命令的意思是执行command然后将输出的内容存入到file(覆盖还是追加由> 和 >> 决定)

    [root@ipha-dev71-1 exercise_shell]# echo 1 > test.sh 
    [root@ipha-dev71-1 exercise_shell]# cat test.sh   # 查看文件内容
    1
    [root@ipha-dev71-1 exercise_shell]# echo 2 >test.sh 
    [root@ipha-dev71-1 exercise_shell]# cat test.sh   
    2
    [root@ipha-dev71-1 exercise_shell]# echo 3 >> test.sh 
    [root@ipha-dev71-1 exercise_shell]# cat test.sh 
    2
    3

    command < file:将 file 文件中的内容作为 command 的输入

    [root@ipha-dev71-1 exercise_shell]# cat test.sh 
    #!/bin/sh
    echo "输入1到4之间的数字:"
    echo "你输入的数字为:"
    read aNum
    case $aNum in
        1) echo '你选择了1'
        ;;
        2) echo '你选择了2'
        ;;
        3) echo '你选择了3'
        ;;
        4) echo '你选择了4'
        ;;
        *) echo '你没有输入1到4之间的数字'
        ;;
    esac
    [root@ipha-dev71-1 exercise_shell]# wc <test.sh 
     16  31 305
    [root@ipha-dev71-1 exercise_shell]# wc test.sh
     16  31 305 test.sh

    重定向深入讲解:

     0 是标准输入(STDIN),1 是标准输出(STDOUT),2 是标准错误输出(STDERR)。

    [root@ipha-dev71-1 exercise_shell]# ls test.sh 
    test.sh
    [root@ipha-dev71-1 exercise_shell]# ls a.txt
    ls: cannot access a.txt: No such file or directory
    [root@ipha-dev71-1 exercise_shell]# ls test.sh a.txt 1>file.out 2>file.err   # 1可以省略,2不可以省略;1和>之间不可以有空格,>和file.out间可以有空格
    [root@ipha-dev71-1 exercise_shell]# ll
    total 36
    -rwxrwxrwx 1 root root  70 Aug 27 15:57 del_var.sh
    -rwxrwxrwx 1 root root  85 Aug 27 16:13 double_str.sh
    -rw-r--r-- 1 root root  51 Aug 28 21:30 file.err
    -rw-r--r-- 1 root root   8 Aug 28 21:30 file.out
    -rwxrwxrwx 1 root root  58 Aug 27 15:52 read_only.sh
    -rwxrwxrwx 1 root root  45 Aug 27 16:05 simple_str.sh
    -rwxrwxrwx 1 root root  37 Aug 28 17:59 test1.sh
    -rwxrwxrwx 1 root root   0 Aug 28 17:56 test2.sh
    -rwxrwxrwx 1 root root 305 Aug 28 17:49 test.sh
    -rwxrwxrwx 1 root root  69 Aug 27 15:47 variable.sh
    [root@ipha-dev71-1 exercise_shell]# cat file.out 
    test.sh
    [root@ipha-dev71-1 exercise_shell]# cat file.err 
    ls: cannot access a.txt: No such file or directory
    [root@ipha-dev71-1 exercise_shell]# ls test.sh a.txt 1>file.out 2>&1   # 将 stdout 和 stderr 合并后重定向到 file.out
    [root@ipha-dev71-1 exercise_shell]# cat file.out 
    ls: cannot access a.txt: No such file or directory
    test.sh

    /dev/null 是一个特殊的文件,写入到它的内容都会被丢弃;如果尝试从该文件读取内容,那么什么也读不到。但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到"禁止输出"的效果。

    如果希望屏蔽 stdout 和 stderr,可以这样写:

    [root@ipha-dev71-1 exercise_shell]# ls test.sh a.txt >/dev/null 2>&1
  • 相关阅读:
    数据结构--链表基础练习题
    LeetCode 10.28每日一题1207. 独一无二的出现次数【简单】
    数据结构--链表
    LeetCode 10.25每日一题845. 数组中的最长山脉【中等】
    LeetCode 10.22每日一题763. 划分字母区间【中等】
    解决map热点与uni-app中map标签冲突的问题。(Vue Render函数应用)
    【Codeforces 1329A】Dreamoon Likes Coloring
    【Codeforces Alpha Round #20 C】Dijkstra?
    【 Educational Codeforces Round 93 (Rated for Div. 2) D】Colored Rectangles
    【Codeforces Round #643 (Div. 2) C】Count Triangles
  • 原文地址:https://www.cnblogs.com/wang-mengmeng/p/11425316.html
Copyright © 2011-2022 走看看