引出:
常用或者长在学习shell的同学应该会经常碰到如题:>/dev/null 2>&1
什么意思呢?
解析:
>是重定向,是将一个进程的输出流重定向至一个文件或者设备中。如:echo 123 > test.txt,意思是echo的输入流重定向至test.txt中,等同于将123写入test.txt文件中
而众所周知,在linux中1代表进程的标准输出,2代表进程的错误输出流
规则:
1、若>符号前面无数字,则系统默认为1,即将标准输出流重定向至文件或者设备中
2、若>有数字,则将对应的输出流重定向至文件或设备中
3、&为等同于的意思, 2>&1代表错误输出的重定向与标准输出的重定向相同
4、/dev/null为黑洞,任何输入流重定向至该设备,都无任何反馈
结论:
综上:若一个命令后跟> /dev/nul 2>&1 则表示该命令执行阶段不产生任何标准输出和错误输出