shell脚本中>/dev/null的含义
sqlplus ${user_id} <<! >/dev/null
spool spool_file;
desc table
spool off;
exit
!
请问这里”>/dev/null“是什么意思呢?谢谢!
这里的日志指的是执行以下脚本在屏幕上打印的部分?
sqlplus ${user_id} <<! >/dev/null
spool spool_file;
desc table
spool off;
exit
! 展开
/dev/null表示空设备,这里就是把日志记录到空设备里,就是不记录日志,Null 是一特殊指标值(或是一种物件参照 reference)表示这个指标并不指向任何的物件。
是一个特殊的文件,写入到它的内容都会被丢弃,如果尝试从该文件读取内容,那么什么也读不到,但是 /dev/null 文件非常有用,将命令的输出重定向到它,会起到”禁止输出“的效果。
扩展资料:
用处:禁止标准输出
1 cat $filename >/dev/null # 文件内容丢失,而不会输出到标准输出,禁止标准错误。
2、dev/null 这样错误信息[标准错误]就被丢的不知道到哪了。
3、1>/dev/null 2>&1的含义 > 代表重定向到哪里,例如:echo "123" > /home/123.txt 1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null" 2表示stderr标准错误 & 表示等同于的意思。
4、2>&1,表示2的输出重定向等同于1 那么本文标题的语句1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。
5、2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。
6、/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件。
参考资料来源:
shell脚本中的>/dev/null,这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
扩展资料:
shell的用途:
使用用户的缺省凭证和环境执行 shell。
在UEFI环境下,EFI的Shell环境提供了一组丰富的扩展和增强的命令,在以后的计算机中,传统的DOS界面将会被SHELL环境所取代,所有的.exe文件将不会在以后支持SHELL的环境中出现,取而代之的文件后缀是.efi。
在SHELL环境下,分为IA32和X64,32位的*.efi文件不能在X64的计算机中运行。
参考资料:百度百科-shell
含义:
这条命令的作用是将标准输出1重定向到/dev/null中。 /dev/null代表linux的空设备文件,所有往这个文件里面写入的内容都会丢失,俗称“黑洞”。
那么执行了>/dev/null之后,标准输出就会不再存在,没有任何地方能够找到输出的内容。
shell重定向介绍:
就像我们平时写的程序一样,一段程序会处理外部的输入,然后将运算结果输出到指定的位置。在交互式的程序中,输入来自用户的键盘和鼠标,结果输出到用户的屏幕,甚至播放设备中。
而对于某些后台运行的程序,输入可能来自于外部的一些文件,运算的结果通常又写到其他的文件中。
而且程序在运行的过程中,会有一些关键性的信息,比如异常堆栈,外部接口调用情况等,这些都会统统写到日志文件里。
shell脚本也一样,但是我们一般在使用shell命令的时候,更多地还是通过键盘输入,然后在屏幕上查看命令的执行结果。
如果某些情况下,我们需要将shell命令的执行结果存储到文件中,那么我们就需要使用输入输出的重定向功能。
扩展资料
其他重定向:
1、2. 2>&1
这条命令用到了重定向绑定,采用&可以将两个输出绑定在一起。这条命令的作用是错误输出将和标准输出同用一个文件描述符,说人话就是错误输出将会和标准输出输出到同一个地方。
linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令,所以>/dev/null 2>&1的作用就是让标准输出重定向到/dev/null中(丢弃标准输出)。
然后错误输出由于重用了标准输出的描述符,所以错误输出也被定向到了/dev/null中,错误输出同样也被丢弃了。
执行了这条命令之后,该条shell命令将不会输出任何信息到控制台,也不会有任何信息输出到文件中。
2、>/dev/null 2>&1 VS 2>&1 >/dev/null
linux在执行shell命令之前,就会确定好所有的输入输出位置,并且从左到右依次执行重定向的命令。那么我们同样从左到右地来分析2>&1 >/dev/null:
2>&1,将错误输出绑定到标准输出上。由于此时的标准输出是默认值,也就是输出到屏幕,所以错误输出会输出到屏幕。
>/dev/null,将标准输出1重定向到/dev/null中。
表示空设备,这里就是把日志记录到空设备里,就是不记录日志。