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