Linux Shell之IO重定向

2021-05-23 13:53:48 字數 1133 閱讀 9011

一、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個時,使用{}括起來。例如:$

例如:寫乙個簡單的shell,返回類似條件名稱的當前連線的終端

$ cat who.sh

# /bin/sh

who -a | grep $1

$chmod x+ who.sh

./who.sh tty

返回終端名tty的連線資訊

四、指令碼跟蹤執行

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

set -x  表示開啟跟蹤

set +x 表示停止跟蹤

eaweedfs之Volume讀請求重定向

場景展現 啟動乙個 weed master 服務。weed master mdir tmp mdata defaultreplication 000 啟動兩個 weed volume 服務。weed volume dir tmp vol1 mserver 127.0.0.1 9333 port 80...

stdin,stdout,stderr和重定向

c程式自動開啟3個檔案,標準輸入,標準輸出和標準錯誤輸出。預設情況下分別指向鍵盤,顯示器,顯示器。這裡的檔案指的是指向file的指標。file是stdio.h中定義的一種派生型別。file型別指標,指向乙個關於檔案資訊的資料報,其中包括檔案i o使用的緩衝區的資訊。stdin,stdout,stde...

Linux Linux printf 輸出重定向

方法一 include include include include include intmain 方法二 include include include intmain 到這裡我們就可以輕鬆解決 prinft 不輸出到螢幕的問題了.不外乎兩種情況.第1 標準輸出被重定向了.第2 輸出緩衝區的問...