Shell之輸入 輸出重定向

2021-10-08 15:19:41 字數 2088 閱讀 2479

注:此部落格使用的是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...