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

卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

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

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

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

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

首先,`command > file 2 > file`表示將命令產(chǎn)生的標(biāo)準(zhǔn)輸出信息和錯誤輸出信息都發(fā)送到file文件中。使用這種寫法時,stdout和stderr都直接發(fā)送到file中,導(dǎo)致file被打開兩次,stdout和stderr會互相覆蓋,實(shí)際上使用了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)準(zhǔn)錯誤

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

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

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

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

- `2 > 1`表示標(biāo)準(zhǔn)錯誤輸出重定向到標(biāo)準(zhǔn)輸出,因?yàn)橹皹?biāo)準(zhǔn)輸出已經(jīng)被重定向到了空設(shè)備文件,所以標(biāo)準(zhǔn)錯誤輸出也重定向到空設(shè)備文件。

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

標(biāo)簽: