1`這樣的命令。這條命令的作用是將標(biāo)準輸出和錯誤輸出都重定向到/dev/null中,即將所有生成的信息丟棄。接下來我們詳細解釋一下`co" />

成人AV在线无码|婷婷五月激情色,|伊人加勒比二三四区|国产一区激情都市|亚洲AV无码电影|日av韩av无码|天堂在线亚洲Av|无码一区二区影院|成人无码毛片AV|超碰在线看中文字幕

在Shell中理解/dev/null 2 > 1命令

在編寫Shell腳本時,經(jīng)常會遇到`/dev/null 2 > 1`這樣的命令。這條命令的作用是將標(biāo)準輸出和錯誤輸出都重定向到/dev/null中,即將所有生成的信息丟棄。接下來我們詳細解釋一下`co

在編寫Shell腳本時,經(jīng)常會遇到`/dev/null 2 > 1`這樣的命令。這條命令的作用是將標(biāo)準輸出和錯誤輸出都重定向到/dev/null中,即將所有生成的信息丟棄。接下來我們詳細解釋一下`command > file 2 > file`與`command > file 2 > 1`之間的區(qū)別。

`command > file 2 > file`的工作原理

首先,`command > file 2 > file`表示將命令產(chǎn)生的標(biāo)準輸出信息和錯誤輸出信息都發(fā)送到file文件中。使用這種寫法時,stdout和stderr都直接發(fā)送到file中,導(dǎo)致file被打開兩次,stdout和stderr會互相覆蓋,實際上使用了FD1和FD2兩個管道同時去占用file。

`command > file 2 > 1`的效果及優(yōu)勢

而`command > file 2 > 1`這條命令則直接將stdout發(fā)送到file,然后stderr繼承了FD1管道后再被發(fā)送到file,這樣file只被打開一次,也只使用一個管道FD1,包含了stdout和stderr的內(nèi)容。從IO效率上看,前一條命令的效率要低于后一條命令,因此在編寫Shell腳本時,我們更傾向于使用`command > file 2 > 1`這樣的寫法。

深入分析shell中的`> /dev/null 2 > 1`命令

在Shell中,經(jīng)常會遇到類似`> /dev/null 2 > 1`這樣的命令,通過`>`符號來定義輸出分解組合。具體來說,“> /dev/null 2 > 1”可以分為五部分:

1. `>`代表重定向到哪里,例如:`echo "123" > /home/123.txt`

2. `/dev/null`代表空設(shè)備文件

3. `2 > 1`表示標(biāo)準錯誤

4. ``表示等同于的意思,`2 > 1`表示2的輸出重定向等同于1

5. `1`表示標(biāo)準輸出,默認值是1,因此`> /dev/null`等同于`1 > /dev/null`

因此,`> /dev/null 2 > 1`也可以寫成`1 > /dev/null 2 > 1`。這條命令的執(zhí)行過程如下:

- `1 > /dev/null`表示標(biāo)準輸出重定向到空設(shè)備文件,即不輸出任何信息到終端,不顯示任何信息

- `2 > 1`表示標(biāo)準錯誤輸出重定向到標(biāo)準輸出,因為之前標(biāo)準輸出已經(jīng)被重定向到了空設(shè)備文件,所以標(biāo)準錯誤輸出也重定向到空設(shè)備文件。

通過以上分析,我們更加深入地理解了`> /dev/null 2 > 1`這個Shell命令在實際應(yīng)用中的作用和效果。

標(biāo)簽: