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

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

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

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

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

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

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

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

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

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

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

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

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

3. `2 > 1`表示標(biāo)準(zhǔn)錯(cuò)誤

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í)行過(guò)程如下:

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

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

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

標(biāo)簽: