Linux中有三種標(biāo)準(zhǔn)輸入輸出变丧,分別是STDIN,STDOUT绢掰、STDERR痒蓬,對應(yīng)的數(shù)字是0,1滴劲,2攻晒。
STDIN是標(biāo)準(zhǔn)輸入,默認(rèn)從鍵盤讀取信息哑芹;STDOUT是標(biāo)準(zhǔn)輸出,默認(rèn)將輸出結(jié)果輸出至終端捕透;STDERR是標(biāo)準(zhǔn)錯誤聪姿,默認(rèn)將輸出結(jié)果輸出至終端碴萧。
由于STDOUT與STDERR都會默認(rèn)顯示在終端上,為了區(qū)分二者的信息末购,就有了編號的0破喻,1,2的定義盟榴,用1表示STDOUT曹质,2表示STDERR。
標(biāo)準(zhǔn)輸入0: 從鍵盤獲得輸入
標(biāo)準(zhǔn)輸出1 : 輸出到屏幕(即控制臺)
錯誤輸出2 : 輸出到屏幕(即控制臺)
/dev/null
代表linux的空設(shè)備文件擎场,所有往這個文件里面
寫入的內(nèi)容都會丟失羽德,俗稱“黑洞”
2>/dev/null
意思就是把錯誤輸出到“黑洞”
2>&1
指將標(biāo)準(zhǔn)輸出、標(biāo)準(zhǔn)錯誤指定為同一輸出路徑
>/dev/null 2>&1
默認(rèn)情況是1迅办,也就是等同于
1>/dev/null 2>&1
意思就是把標(biāo)準(zhǔn)輸出重定向到“黑洞”宅静,
還把錯誤輸出2重定向到標(biāo)準(zhǔn)輸出1,
也就是標(biāo)準(zhǔn)輸出和錯誤輸出都進(jìn)了“黑洞”
2>&1 >/dev/null意思就是把錯誤輸出2重定向到標(biāo)準(zhǔn)出書1站欺,
也就是屏幕姨夹,標(biāo)準(zhǔn)輸出進(jìn)了“黑洞”,也就是標(biāo)準(zhǔn)輸出進(jìn)了黑洞矾策,
錯誤輸出打印到屏幕
關(guān)于這里”&”的作用磷账,我們可以這么理解2>/dev/null重定向到文件,那么2>&1贾虽,這里如果去掉了&就是把錯誤輸出給了文件1了逃糟,用了&是表明1是標(biāo)準(zhǔn)輸出。
>輸出重定向符榄鉴,會將原文件覆蓋履磨。
>>輸出重定向符,會在原文件上追加內(nèi)容庆尘。