Linux 命令預設從標準輸入設備(stdin)獲取輸入,將結果輸出到標準輸出設備(stdout)顯示。一般情況下,標準輸入設備就是鍵盤,標準輸出設備就是終端,即顯示器。 輸出重定向:命令的輸出不僅可以是顯示器,還可以很容易的轉移向到文件,這被稱為輸出重定向。 命令輸出重定向的語法為: $ comm ...
Linux 命令預設從標準輸入設備(stdin)獲取輸入,將結果輸出到標準輸出設備(stdout)顯示。一般情況下,標準輸入設備就是鍵盤,標準輸出設備就是終端,即顯示器。 輸出重定向:命令的輸出不僅可以是顯示器,還可以很容易的轉移向到文件,這被稱為輸出重定向。 命令輸出重定向的語法為:
- $ command > file
- $ who > users
- command < file
- 標準輸入文件(stdin):stdin的文件描述符為0,Unix程式預設從stdin讀取數據。
- 標準輸出文件(stdout):stdout 的文件描述符為1,Unix程式預設向stdout輸出數據。
- 標準錯誤文件(stderr):stderr的文件描述符為2,Unix程式會向stderr流中寫入錯誤信息。
- $command 2 > file
- $command 2 >> file
- $command > file 2>&1
- $command >> file 2>&1
- $command < file1 >file2
- $command &>>file
命令 | 說明 |
command > file | 將輸出重定向到 file。 |
command < file | 將輸入重定向到 file。 |
command >> file | 將輸出以追加的方式重定向到 file。 |
n > file | 將文件描述符為 n 的文件重定向到 file。 |
n >> file | 將文件描述符為 n 的文件以追加的方式重定向到 file。 |
n >& m | 將輸出文件 m 和 n 合併。 |
n <& m | 將輸入文件 m 和 n 合併。 |
<< tag | 將開始標記 tag 和結束標記 tag 之間的內容作為輸入。 |
- command << EOF
- document
- EOF
- 結尾的EOF 一定要頂格寫,前面不能有任何字元,後面也不能有任何字元,包括空格和 tab 縮進。
- 開始的EOF前後的空格會被忽略掉。
- #!/bin/bash
- cat << EOF
- This is a simple lookup program
- for good (and bad) restaurants
- in Cape Town.
- EOF
- #!/bin/sh
- filename=test.txt
- vi $filename <<EndOfCommands
- i
- This file was created automatically from
- a shell script
- ^[
- ZZ
- EndOfCommands
- $ command > /dev/null
- $ command > /dev/null 2>&1