/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.pswp.cn/news/383443.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/383443.shtml
英文地址,請注明出處:http://en.pswp.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下以.開頭的文件是隱藏文件 每個目錄下文件的兩個特殊目錄 . 表示目錄自身…