注:此部落格使用的是bash shell
命令說明
command > file
將輸出重定向到 file
command >> file
將輸出以追加的方式重定向到 file,顯示到file的最後,不會覆蓋原檔案內容
**舉例:
# obj.sh
#!/bin/bash
echo
"ueueq"
echo
"qs-dao"
echo
"秋山刀名魚"
# jbo.sh
#!/bin/bash
echo
"we are and are not"
執行測試:
標準輸出和標準錯誤輸出重定向
#asd.sh
#!/bin/bash
echo
"1 2 3 4"
echo "asdasd #故意錯誤
執行測試:兩種均可
檔案描述符的複製
命令說明
n >& m
將檔案描述符 n 複製到 m
n 將檔案描述符 n 複製到 m
#asd.sh
#!/bin/bash
echo
"1 2 3 4"
echo "asdasd
執行測試:標準輸出和標準錯誤都重定向到了file
exec繫結重定向
**舉例:
cjs@queue:
~$ ls /proc/self/fd/ 檢視當前檔案描述符01
23cjs@queue:
~$ exec 6
>
&1 將標準輸出與fd6繫結
cjs@queue:
~$ ls /proc/self/fd/01
236 這會已經出現了fd6
cjs@queue:
~$ exec > temp_test 將所有命令輸出都重定向到temp_test檔案
cjs@queue:
~$ ls 檢視當前目錄,未輸出,因為重定向了
cjs@queue:
~$ .
/obj.sh 執行指令碼,未輸出,因為重定向了
cjs@queue:
~$ exec 1
>
&6 將標準輸出恢復回來,即恢復到終端,不難理解
cjs@queue:
~$ exec 6
>
&- 關閉fd6
cjs@queue:
~$ ls 已經可以正常輸出到終端了
輸出:ls和obj.sh的輸出已經寫在了temp_test
/dev/null 檔案
$ command
> /dev/null 2>
&1
注意:0 是標準輸入(stdin),1 是標準輸出(stdout),2 是標準錯誤輸出(stderr)。 Shell 輸入 輸出重定向
大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...
Shell 輸入 輸出重定向
大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...
Shell輸入輸出重定向
大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...