嘉陵 建设 摩托车官方网站,影视广告设计与制作,钦州市建设局网站,做网络调查的网站赚钱bash的I/O重定向及管道
一、概述 在shell中#xff0c;最常使用的fd(file descriptor)有三个#xff0c;标准输入#xff0c;标准输出#xff0c;错误输出。进程用文件描述符来管理打开的文件。 名称 文件描述符 标准输入#xff08;stdin) 0 键盘#xff0c;也可以…bash的I/O重定向及管道
一、概述 在shell中最常使用的fd(file descriptor)有三个标准输入标准输出错误输出。进程用文件描述符来管理打开的文件。 名称 文件描述符 标准输入stdin) 0 键盘也可以是其他文件或者命令的输出的内容可以作为标准输入 标准输出stdout) 1 默认输出到屏幕 错误输出stderr) 2 默认输出到屏幕 文件名称filename 3
二、I/O重定向改变标准位置 标准的输入设备默认指的是键盘标准的输出设备默认指的是显示器。 输入重定向指定设备通常是文件或命令的执行结果来代替键盘作为新的输入设备输出重定向将原本要输出在屏幕上的结果放到指定的设备通常是文件 标准输入重定向 标准输出重定向 2 标准错误输出重定向 把所有输出标准输出、标准错误输出重定向
三、输出重定向 COMMAND NEW_POSCOMMAND NEW_POS :覆盖重定向原内容清空 :追加重定向 注 set -C :禁止将内容重定向到已有文件中 强制覆盖| set C:取消set -C命令的作用 标准输出和错误输出流分别输出到不同的文件中 COMMAND FILENAME1.out 2FILENAME2.out 合并标准输出流和错误输出流到同一个文件中 COMMAND FILENAME.out 效果同上COMMAND FILENAME.out 21注意顺序 四、输入重定向
命令 文件 将指定文件作为命令的输入设备命令 分界符 表示从标准输入设备键盘中读入直到遇到分界符才停止读入的数据不包括分界符命令 文件1 文件2 将文件1作为命令的输入设备该命令的执行结果输出到文件2 中。
案例1 tr命令转换或删除字符 tr [OPTION]... SET1 [SET2] tr abc ABC /etc/fstab
案例2cat是为了将标准输入的内容标准输出这里将标准输出又重定向到1.log文件。 多行重定向输出可以使用上述方式单行重定向可以使用echo abc 1.log
五、管道 COMMAND1 | COMMAND2 | COMMAND3 | ... 将命令1的STDOUT发送给命令2的STDIN命令2的STDOUT发送到命令3的STDIN STDERR错误重定向不能通过管道转发可利用21转化后实现 note:最后一个命令会在当前shell进程的子shell进程中执行。
六、tee命令
tee命令重定向到多个目标 格式命令1 | tee [-a ] 文件名 | 命令2 把命令1的Stdout先保存在文件中同时Stdout做为命令2的输入 例