11input/output
輸出重定向
command1 > file1
vim test
hello
cat test
who > users
cat test
echo "nihao" > test
cat test
輸入重定向
command1 < file1
wc -l test 統(tǒng)計(jì)行數(shù)
重定向深入了解
一般情況下,每個(gè) Unix/Linux 命令運(yùn)行時(shí)都會(huì)打開(kāi)三個(gè)文件:
- 標(biāo)準(zhǔn)輸入文件(stdin):stdin的文件描述符為0,Unix程序默認(rèn)從stdin讀取數(shù)據(jù)。
- 標(biāo)準(zhǔn)輸出文件(stdout):stdout 的文件描述符為1,Unix程序默認(rèn)向stdout輸出數(shù)據(jù)。
- 標(biāo)準(zhǔn)錯(cuò)誤文件(stderr):stderr的文件描述符為2,Unix程序會(huì)向stderr流中寫(xiě)入錯(cuò)誤信息。
默認(rèn)情況下,command > file 將 stdout 重定向到 file,command < file 將stdin 重定向到 file。
如果希望 stderr 重定向到 file,可以這樣寫(xiě):
command 2 > file
如果希望 stderr 追加到 file 文件末尾,可以這樣寫(xiě):
command 2 >> file
如果希望將 stdout 和 stderr 合并后重定向到 file,可以這樣寫(xiě):
command > file 2>&1
command >> file 2>&1
如果希望對(duì) stdin 和 stdout 都重定向,可以這樣寫(xiě):
command < file1 >file2
Here Document
Shell 中的一種特殊的重定向方式,用來(lái)將輸入重定向到一個(gè)交互式 Shell 腳本或程序。
command << delimiter
document
delimiter
它的作用是將兩個(gè) delimiter 之間的內(nèi)容(document) 作為輸入傳遞給 command。
注意:
- 結(jié)尾的delimiter 一定要頂格寫(xiě),前面不能有任何字符,后面也不能有任何字符,包括空格和 tab 縮進(jìn)。
- 開(kāi)始的delimiter前后的空格會(huì)被忽略掉。
cat << EOF 歡迎來(lái)到 菜鳥(niǎo)教程 www.runoob.com EOF
/dev/null文件
如果希望執(zhí)行某個(gè)命令,但又不希望在屏幕上顯示輸出結(jié)果,那么可以將輸出重定向到 /dev/null:
command > /dev/null
/dev/null 是一個(gè)特殊的文件,寫(xiě)入到它的內(nèi)容都會(huì)被丟棄;如果嘗試從該文件讀取內(nèi)容,那么什么也讀不到。但是 /dev/null 文件非常有用,將命令的輸出重定向到它,會(huì)起到"禁止輸出"的效果。
如果希望屏蔽 stdout 和 stderr,可以這樣寫(xiě):
command > /dev/null 2>&1
轉(zhuǎn)載于:https://www.cnblogs.com/DowneyJr/p/7659412.html
總結(jié)
以上是生活随笔為你收集整理的11input/output的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 剑指offer之 二叉搜索树的后续遍历序
- 下一篇: [Ctsc2014]企鹅QQ