shell輸入輸出重定向 不存在檔案會自動建立

2021-08-10 13:35:09 字數 1944 閱讀 1628

1.覆蓋式輸出重定向:>

cat for.sh > 1.txt

cat for.sh > 1.txt

cat for.sh > 1.txt

只寫了一次,每次都先清除之前的內容(注意不只是覆蓋,而是清空原檔案內容),然後再寫入下一次結果

2.追加式輸出重定向:>>

cat for.sh > 1.txt

cat for.sh > 1.txt

cat for.sh > 1.txt

追加式,將for.sh的內容寫到1.txt寫3遍

3.錯誤輸出重定向:2>

僅重定向錯誤資訊;

1>及1>>是正確重定向,也是預設的重定向,分別等價於(>和》)

而cat for.sh 2> 2.txt的意思是如果cat for.sh的錯誤資訊重定向到2.txt,如果沒有錯誤就不重定向,也是覆蓋式錯誤重定向;

2>>是追加式錯誤重定向

4.將正確和錯誤資訊同時重定向(一般在用在指令碼中)

既有正確資訊又有錯誤提示,這時輸出重定向方法如下:

1)覆蓋式輸出重定向:

bash a.sh &> c.txt

或者bash a.sh 1>c.txt 2>&1

2)追加式重定向(1追加式,2沿著1重定向,是否追加取決於1)

bash a.sh 1>> c.txt 2>&1

例子:如下面的指令碼檔案:a.sh的內容如下:

或者 bash for.sh 1> c.txt

c.txt本來為空,用》正確重定向只是把正確資訊寫入到了c.txt中,錯誤資訊還是在螢幕中列印,且為覆蓋式的最後c.txt中乙個一次結果

d.txt本來為空,用2>只把錯誤資訊覆蓋式的寫入到了d.txt(不存在會自動建立),正確資訊輸出到螢幕上

e.txt本來不存在,用追加式重定向把正確資訊追加到e.txt中,若e.txt之前存在內容也不會清空

f.txt原來存在三行資料,用2>>追加,不影響之前資料,且只追加錯誤資訊

或者 bash for.sh 1> e.txt 2>&1

或者 bash for.sh 2> e.txt 1>&2

將正確資訊和錯誤資訊同時新增到e.txt中:這種方法只能覆蓋式追加

,e.txt中原來有一行文字,用&>將for.sh的正確和錯誤資訊同時新增到e.txt中,但是之前的那行資訊被清掉了

(6)追加式正確&錯誤重定向:

bash for.sh 1>> h.txt 2>&1

或者 bash for.sh 2>> h.txt 1>&2

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell 輸入 輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...

Shell輸入輸出重定向

大多數 unix 系統命令從你的終端接受輸入並將所產生的輸出傳送回 到您的終端。乙個命令通常從乙個叫標準輸入的地方讀取輸入,預設情況下,這恰好是你的終端。同樣,乙個命令通常將其輸出寫入到標準輸出,預設情況下,這也是你的終端。重定向命令列表如下 命令說明 command file 將輸出重定向到 fi...