linux下标准输入及输出错误详解

输出包含两种类型: 一种是程序的运行结果(标准输出), 一种是状态和错误信息(标准错误).
标准输出(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提供.

  1. 标准输入:
    cat命令(ConcATenate), 本意是链接文件, cat xxxx[1] xxxx … > xxxx[end];
  2. 如果只使用第一个参数, 即把信息输出至屏幕, 可以输出短的文件, 不会换行;
  3. 如果只使用cat, 则从键盘获取信息, 输出至屏幕;
  4. 如果只使用最后一个参数, 即cat > xxxx, 即从键盘输入, 存储入文件;
  5. 如果都使用, 则是连接文件, 把文件顺次连接, 并存入结尾文件;
  6. 可以使用"<", 即"cat < xxxx", 则是重定向, 把输入的源, 变为文件, 和直接输入文件意义相同.

猜你喜欢

转载自blog.csdn.net/qq_17576885/article/details/123375483