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

2020-02-04  本文已影响0人  天空蓝雨

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

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

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

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

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

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

上一篇 下一篇

猜你喜欢

热点阅读