/dev/null 21 的作用

shell中可能经常能看到:>/dev/null 2>&1  

命令的结果可以通过%>的形式来定义输出  

/dev/null 代表空设备文件  
> 代表重定向到哪里,例如:echo "123" > /home/123.txt  
1 表示stdout标准输出,系统默认值是1,所以">/dev/null"等同于"1>/dev/null"  
2 表示stderr标准错误  
& 表示等同于的意思,2>&1,表示2的输出重定向等同于1  

那么本文标题的语句:  
1>/dev/null 首先表示标准输出重定向到空设备文件,也就是不输出任何信息到终端,说白了就是不显示任何信息。  
2>&1 接着,标准错误输出重定向等同于 标准输出,因为之前标准输出已经重定向到了空设备文件,所以标准错误输出也重定向到空设备文件。  
A. 1> /dev/null 表示将命令的标准输出重定向到 /dev/null2>/dev/null 表示将命令的错误输出重定向到 /dev/null1 - denotes stdout ( standard output )2 - denotes stderr  ( standard error )/dev/null就相当与windows里的回收站,只是进去了不能再出来了。>/dev/null 就是将标准输出和标准出错的信息屏蔽不显示  
B.>/dev/null 2>&1   also can write  as  1>/dev/null 2>&1     - stdout redirect to /dev/null (no stdout) ,and redirect stderr to stdout  (stderr gone as well) . end up it turns both stderr and stdout off  
C.a little practice may help to undstand above .  #ls /usr  /nothing #ls /usr  /nothing  2>/dev/null #ls /usr  /nothing  >/dev/null 2>&1  

我们经常会在UNIX系统下的一些脚本中看到类似”2>&1″这样的用法,例如“/path/to/prog 2>&1 > /dev/null &”,那么它的具体含义是什么呢?  
  UNIX有几种输入输出流,它们分别与几个数字有如下的对应关系:0-标准输入流(stdin),1-标准输出流(stdout),2-标准错误流 (stderr)。”2>&1″的意思就是将stderr重定向至stdout,并一起在屏幕上显示出来。如果不加数字,那么默认的重定向动作是针对stdout(1)的,比如”ls -l > result”就等价于”ls -l 1 > result”。这样便于我们更普遍性的理解重定向过程。  
  下面举例说明:  
#cat std.sh  
#!/bin/sh  
echo “stdout”  
echo “stderr” >&2  

#/bin/sh std.sh 2>&1 > /dev/null  
stderr  

#/bin/sh std.sh > /dev/null 2>&1  

  第一条命令的输出结果是stderr,因为stdout和stderr合并后一同重定向到/dev/null,但stderr并未被清除,因此仍将在屏幕中显示出来;第二条命令无输出,因为当stdout重定向至/dev/null后,stderr又重定向到了stdout,这样stderr也被输出到了/dev/null。  

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/383443.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

移植wpa_supplicant 2.2问题

1.编译libnl1.1问题 In file included from addr.c:28:0: ../include/netlink-local.h: In function __str2type: ../include/netlink-local.h:218:11: error: ULONG_MAX undeclared (first use in this function) ../include/netlink-local.h:218:11: note: each undeclared …

wpa_supplicant与wpa_cli之间通信过程

wpa_supplicant编译: 1. wpa_supplicant/Android.mk : -- wpa_cli -- wpa_supplicant -- libwpa_client.so 2. hostapd/Android.mk : -- hostapd_cli -- hostapd 从通信层次上划分,wpa_supplicant提供向上的控制接口 control interface,用于与…

Linux内核驱动之GPIO子系统(一)GPIO的使用

一 概述 Linux内核中gpio是最简单,最常用的资源(和 interrupt ,dma,timer一样)驱动程序,应用程序都能够通过相应的接口使用gpio,gpio使用0~MAX_INT之间的整数标识,不能使用负数,gpio与硬件体系密切相关的,不过linux有一…

gpio_direction_output 与 gpio_set_value

gpio_set_value(port_num,0/1) 一般只是在这个GPIO口的寄存器上写上某个值,至于这个端口是否设置为输出,它就管不了! 而gpio_direction_output (port_num,0/1),在某个GPIO口写上某个值之后&…

内核ko模块strip使用

编译一个内核时,习惯性的在install目标下加了命令: $(STRIP) --strip-all --remove-section.note --remove-section.comment test.ko 结果在insmod test.ko时出现错误: test: module has no symbols (stripped?) .................. 上…

ubuntu下修复U盘只读问题

1.通过mount指令查看u盘挂载的实际设备 /dev/sdb1 on /media/xuxuequan/0BEB-331A type vfat (rw,nosuid,nodev,uid1000,gid1000,shortnamemixed,dmask0077,utf81,showexec,flush,uhelperudisks2) 2.umount挂载点 umount /media/xuxuequan/0BEB-331A 3.fsck修复u盘设备 s…

mkfs.jffs2参数详解

实例:mkfs.jffs2 -r rootfs -o rootfs.jffs2 -e 0x4000 --pad0x1000000 -s 0x200 -n mkfs.jffs2: Usage: mkfs.jffs2 [OPTIONS] Make a JFFS2 file system image from an existing directory tree Options: -p, --pad[SIZE] 用16進制來表示所要輸出檔案的大小&…

关于c语言字符串函数和一些内存函数的的简介

关于c语言字符串函数和一些内存函数的的简介 求字符串长度的函数 strlen函数介绍![在这里插入图片描述](https://img-blog.csdnimg.cn/20190301142458376.jpg)注模拟实现 . [1 ]计数器方式 因为strlen 是求字符串长度的函数,所以不能改变字符串本身,所…

君正T20平台生成jffs2格式rootfs

基于系统升级的考虑,这两天在君正T20平台上折腾如何生成jffs2 格式的rootfs。详细的过程如下: 1.修改uboot中的分区参数: 修改为rootfs格式为jffs2的,且适当扩大rootfs分区大小。(因jffs2的压缩比不如只读的squashfs…

用结构体写一个简单的通讯录

一个简单的通讯录 通讯录应该具备简单的一些功能 1 增添联系人 2 删除联系人 3 查找联系人 4 修改联系人 5 按名字给联系人排序 6 查看通讯录 除此之外,应该在实现上还应该具备一些其他的功能函数 比如 初始化通讯录 这些都是功能函数,而整个函数入口应…

jffs2 启动的常见的问题

Q:在启动过程中出现at91sam user.warn kernel: Empty flash at 0x00f0fffc ends at 0x00f10000问题 A:在mkfs.jffs2的时候,加上-e 0x20000指定擦除块的大小。-e是指定擦除块的大小,我们使用的nandflash的块大小为128K字节&#xf…

c动态内存管理

动态内存管理 我们之前要开辟内存用的方法都是定义变量,比如 但是上述开辟内存的方法有两个特点 1空间开辟大小是固定的 2数组在申明的时候,必须指定数组的长度,它所需要的内存在编译时分配 malloc和free c中提供一个动态内存开辟函数 这…

JFFS2文件系统挂载过程优化的分析报告

一 问题描述 在上电启动优化中发现Linux系统下挂载JFFS2文件系统耗时较长,以128M的NOR FLASH为例,用时接近20秒。后续单板的FLASH容量为256M,时间会更长。如此长的挂载时间,会大增加系统的上电启动时间。希望能对mount功能或JFFS…

右移函数(字符串,数组)

右移函数 以上是数组右移,将int换成char 把数组内容改成字符串就行。

关于jffs2文件系统如何掉电保护

JFFS2 是将节点信息保存在内存中 Flash上日志型文件系统的资料,了解到传统的基于闪存转换层(FLT)的文件系统存在的主要问题: 1. 效率低。因为每次都要把要修改的数据所在擦写块放入内存,产生了许多不必要的读操作&…

c中指针简介

c中指针简介 首先我们来看一下指针的一些基本概念 ![在这里插入图片描述](https://img 而对于指针的应用,平常有一些形式,总结了一下大概有这几种用法 对于以上的几种用法,我依次给出详尽的解释 //这是一个普通的整型变量 1 //首先从P 处开…

判断一个字符串是否另一个字符串的右移后的

首先我们把需要判断的字符串传进来,开辟一块大小为两个字符串的长度总和加1的动态的空间,然后后字符串拷贝函数将一个字符串拷贝到开辟空降中,再将这个字符串再次连接到这块动态的空间中,等于就是将一个字符串拷贝了两遍。然后比较…

登陆后保持环境变量导出

在嵌入式开发中,要保证在系统登录后,导出的环境变量依然有效,需要修改如下文件: /etc/profile export PATH/bin:/sbin:/usr/bin:/usr/sbin export PATH/system/bin:$PATH export LD_LIBRARY_PATH/system/lib export LD_LIBRARY_P…

fasync驱动异步通知机制

fasync简介 编辑异步通知fasync应用于系统调用signal和sigaction函数,简单的说,signal函数就是让一个信号与与一个函数对应,每当接收到这个信号就会调用相应的函数。[1]那么什么是异步通知?异步通知类似于中断的机制,当…

Linux中最常见命令总结

Linux中最常见命令总结 基础命令 命令使用格式 命令名【选项参数】 【操作对象】Ls -a workspace目录命令 Ls 默认显示浏览当前文件目录 -a 显示所有文件,不忽略以点开头的文件 Linux下以.开头的文件是隐藏文件 每个目录下文件的两个特殊目录 . 表示目录自身…