Linux Shell之IO重新導向

來源:互聯網
上載者:User

一、IO裝置

IO是指資料的來源端與資料的目的端,分別稱為標準輸入、標準輸出、及標準錯誤輸出。

程式不必關心裝置的問題,無論是檔案、終端、磁帶機等。

 

在Linux預設情況下,會讀取標準輸入、寫入標準輸出,並將錯誤傳遞到標準錯誤輸出。預設情況下標準輸入、輸出、錯誤都是終端。

通過下面可知:

$ cat

input testing  #使用者輸入

input testing  #螢幕輸出

second testing #使用者輸入

second testing #螢幕輸出

 

在登入Linux系統時,預設將終端設為標準輸入、輸出、錯誤裝置。

 

 

二、重新導向與管道

重新導向:

更改預設的標準輸入、輸出、錯誤終端裝置。

以"<"來改變預設的輸入:program < file  ,可將program的標準輸入更改為file

 

以">"來更改預設的輸出:cat file ,可將終端的標準輸出更改為file

 

">>"比較特殊,它是追加輸出。

例如:cat >> file

會將終端輸入追加到file檔案的最後,若file不存在,則會自動建立file檔案。

 

管道:

可以將兩個以上的正在執行中的程式銜接起來。

例如:tr -d '/r'  <  file.txt | sort > file2.txt

將file.txt中的換行刪除,再進行排序。並將結果作為file2.txt的輸入儲存檔案。

 

 

三、訪問shell指令碼的參數

shell中的參數指的是shell指令碼的命令列參數。在shell函數裡,它們同時是shell函數的參數。各參數都由整數命名。

當它們的個數超過9個時,使用{}括起來。例如:${10}

 

例如:寫一個簡單的Shell,返回類似條件名稱的當前串連的終端

$ cat who.sh

# /bin/sh

who -a | grep $1

 

$chmod x+ who.sh

./who.sh tty

返回終端名tty的串連資訊

 

 

四、指令碼跟蹤執行

在寫比較複雜的指令碼時,跟蹤指令碼執行過程,會有助於發現指令碼錯誤,提高編寫效率。

set -x  表示開啟跟蹤

set +x 表示停止跟蹤

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.