shell 重定向

输出 重定向

 

cmd >/dev/null 2>&1> 代表重定向到哪里,例如:echo "123" > /home/123.txt
/dev/null 代表空设备文件
2> 表示stderr标准错误
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于 "1>/dev/null"
# /dev/null 空设备文件

 

 

 

重定向参数

#  标准输出 stdout 和 标准错误 stderr  标准输入stdin
cmd 1> fiel              # 把 标准输出 重定向到 file 文件中
cmd > file 2>&1          # 把 标准输出标准错误 一起重定向到 file 文件中
cmd 2> file              # 把 标准错误 重定向到 file 文件中
cmd 2>> file             # 把 标准错误 重定向到 file 文件中(追加)
cmd >> file 2>&1         # 把 标准输出 和 标准错误 一起重定向到 file 文件中(追加)
cmd < file >file2        # cmd 命令以 file 文件作为 stdin(标准输入),以 file2 文件作为 标准输出
cat <>file               # 以读写的方式打开 file
cmd < file cmd           # 命令以 file 文件作为 stdin

cmd << delimiter
cmd;
#从 stdin 中读入,直至遇到 delimiter 分界符 delimiter

  

>&n    # 使用系统调用 dup (2) 复制文件描述符 n 并把结果用作标准输出
<&n    # 标准输入复制自文件描述符 n
<&-    # 关闭标准输入(键盘)
>&-    # 关闭标准输出
n<&-   # 表示将 n 号输入关闭
n>&-   # 表示将 n 号输出关闭

文件描述符

标准输入stdin:对应的文件描述符是0,符号是<和<<,/dev/stdin -> /proc/self/fd/0
标准输出stdout:对应的文件描述符是1,符号是>和>>,/dev/stdout -> /proc/self/fd/1
标准错误stderr:对应的文件描述符是2,符号是2>和2>>,/dev/stderr -> /proc/self/fd/2

还有一种打印重定向

 

posted @ 2018-04-02 18:38  01234567  阅读(118)  评论(0编辑  收藏  举报