美文网首页
shell &>file、2>&1、1>&2 、/dev/nu

shell &>file、2>&1、1>&2 、/dev/nu

作者: 天空蓝雨 | 来源:发表于2020-02-04 19:39 被阅读0次

参考 csdn 博客:Shell重定向 &>file、2>&1、1>&2 、/dev/null的区别
在shell脚本中,默认情况下,总是有三个文件处于打开状态,标准输入(键盘输入)、标准输出(输出到屏幕)、标准错误(也是输出到屏幕),它们分别对应的文件描述符是0,1,2
2>1 其实是 标准错误,重定向到 1 文件,这是很容易写错的地方
2>&1 才是正确的写法 &1 和c语言指针寻址有点类似。&就拿到了 1的内存地址。 这样就能把 标准错误,也当做标准输出

  • /dev/null是一个文件,这个文件比较特殊,所有传给它的东西它都丢弃掉
  • 一般来说, "1>" 通常可以省略成 ">".
  • 1>&2 正确返回值传递给2输出通道 &2表示2输出通道
  • 2>&1 错误返回值传递给1输出通道, 同样&1表示1输出通道.
  • &>file 意思是把标准输出 和 标准错误输出 都重定向到文件file中,此时控制台很干净了。

另外经常看到 一句命令后面添加 一个 &
参考:多行命令的分隔符 ; & 和 && 的区别
原来

command1 & command2 & command3     三个命令同时执行 

command1; command2; command3       不管前面命令执行成功没有,后面的命令继续执行 

command1 && command2               只有前面命令执行成功,后面命令才继续执行

& 放在启动参数后面表示设置此进程为后台进程
默认情况下,进程是前台进程,这时就把Shell给占据了,我们无法进行其他操作,对于那些没有交互的进程,很多时候,我们希望将其在后台启动,可以在启动参数的时候加一个'&'实现这个目的。

相关文章

网友评论

      本文标题:shell &>file、2>&1、1>&2 、/dev/nu

      本文链接:https://www.haomeiwen.com/subject/orraactx.html