[Shell]Bash準系統:輸入輸出重新導向,shellbash

來源:互聯網
上載者:User

[Shell]Bash準系統:輸入輸出重新導向,shellbash

/*-----------------------------------------------------------------------------------------------

  @黑眼詩人 <www.chenwei.ws>

-----------------------------------------------------------------------------------------------*/

輸入輸出重新導向的作用:

  輸出重新導向就是把命令的執行結果儲存到檔案,便於查看。

  輸入重新導向就是把原先由鍵盤的輸入改為由檔案輸入。

 

先瞭解一下標準輸入輸出:

[  裝置  ][  裝置檔案名稱  ][ 檔案描述符 ][  類型  ]

  鍵盤      /dev/stdin         0     標準輸入

  顯示器     /dev/stdout     1     標準輸出

  顯示器     /dev/stderr    2     標準錯誤輸出

 

幾個概念(> 表示覆蓋,>>表示追加)

[ 正確輸出重新導向 ]

  命令 > 檔案    # 以覆蓋的方式,將命令的正確輸出,輸出到檔案或裝置中

  命令 >> 檔案    # 以追加的方式,將命令的正確輸出,輸出到檔案或裝置中

 

[ 錯誤輸出重新導向 ]

  錯誤命令 2> 檔案  # 以覆蓋方式,將命令的錯誤輸出,輸出到指定檔案或裝置中

  錯誤命令 2>> 檔案  # 以追加的方式,將命令的錯誤輸出,輸出到指定檔案或裝置中

  

  

  (注意:要儲存錯誤資訊,必須在單大於符號或雙大於符號前加 2 ,中間無空格)

 

[ 正確輸出和錯誤輸出同時儲存]

  1. 命令 > 檔案 2>&1  #以覆蓋方式,將正確和錯誤輸出都儲存到同一檔案中

  2. 命令 >> 檔案 2>&1  #以追加的方式,將正確和錯誤輸出都儲存到同一檔案中

  3. 命令 &> 檔案     #等同於第一條(&作用等同於2>&1)

  4. 命令 &>> 檔案     #等同於第二條

  5. 命令 >> 檔案A 2>> 檔案B   #把正確的輸出追加到檔案A,把錯誤的輸出追加到檔案2中(定時備份的時候很有用)

 

ls &> /dev/null    #將執行結果儲存到/dev/null(不存在的裝置,即將無意義的結果清除)

 

輸入重新導向:

[ wc用於統計鍵盤輸入 ]

wc [-c] 檔案名稱  #統計位元組數

wc [-w] 檔案名稱  #統計單詞數

wc [-l] 檔案名稱   #統計行數

(輸入wc後,輸入的其它字元將被統計,ctrl+d結束)

(4行,7個單詞,40個字元)

 

[ 用wc統計檔案:單小於符號 ]


SHELL編程 輸出重新導向

grep -v $bbb xxx.txt | cat >xxx.txt

在管道前後對同一個檔案操作很危險。這樣同時有兩個程式對同一個檔案讀寫,會產生競爭。最後的結果不好確定。最好分開處理。

rep -v $... xxx.txt >xxx.txt 這樣做也不好。通過重新導向後也會發生對同一個檔案同時讀寫的情況。 但至少是同一個程式來控制(如果不算shell)。grep可能已經考慮過這樣的情況,或者巧合(處理時先讀,再寫), 所以結果正確。但同其他程式的配合,情況就更複雜了,很可能出現問題。
具體要看grep,shell和cat代碼。

但總體上,不建議這樣做。這樣做是極危險的行為。最好用一個備份檔案,避免同時對一個檔案讀寫操作。
 
Bash輸出重新導向及製表問題

沒太清楚意思。。。
declare -a folder=(folder1 folder2);
for x in ${folder[*]}; do
find "$x" -mtime -1 -type f -exec \
awk '
function fun() { printf "output" }
NR==1
{ "yourscript "FILENAME | getline var; print var;
print $0"\t"fun()
' {} \;
done
 

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.