标准输入(input)\输出(output)\错误(error) 详解
本文地址: http://blog.csdn.net/caroline_wendy/article/details/23933299
输出包含两种类型: 一种是程序的运行结果(标准输出), 一种是状态和错误信息(标准错误).
标准输出(standard output)和 标准错误(standard error), 默认是连接至屏幕;
标准输入(standard input) 默认是连接至键盘;
可以使用IO重定向(redirection), 改变输入, 输出的发送位置;
1. 标准输出
标准输出重定向, 使用重定向操作符(">"), 把程序输出至文件, 默认是从文件头部重写写入;
可以使用"> test.txt",清空文本信息;
使用">>", 将文件添加至文本尾部;
2. 标准错误
标准错误重定向, 使用"2>", 进行输出, 由于文件流包含三种, 即"输入, 输出, 错误", 对应"0, 1, 2";
即">", 即等于"1>", 标准输出;
处理不想要的错误输出, 使用"2> /dev/null", 隐藏一个命令的错误信息.
同时显示输出和错误, 标准错误是后于标准输出产生, 即要先使用">", 再使用"2>&1", 命令:"xxxx > xxxx 2>&1";
也可以使用"&>", 直接输出标准输出和错误, 命令:"xxxx &> xxxx", 较新版bash提供.
如图:
3. 标准输入:
cat命令(ConcATenate), 本意是链接文件, cat xxxx[1] xxxx ... > xxxx[end];
1. 如果只使用第一个参数, 即把信息输出至屏幕, 可以输出短的文件, 不会换行;
2. 如果只使用cat, 则从键盘获取信息, 输出至屏幕;
3. 如果只使用最后一个参数, 即cat > xxxx, 即从键盘输入, 存储入文件;
4. 如果都使用, 则是连接文件, 把文件顺次连接, 并存入结尾文件;
5. 可以使用"<", 即"cat < xxxx", 则是重定向, 把输入的源, 变为文件, 和直接输入文件意义相同.