十六 shell中的輸入與輸出

2021-05-28 06:51:19 字數 3363 閱讀 8352

在shell中,可以用幾種不同的方式讀入資料,如可使用標準輸入《預設為鍵盤》;或者指定乙個檔案作為輸入輸出也是一樣,當不指定某個檔案作為輸出,標準輸出總是和終端螢幕相關聯,該章主要講解shell中的輸入與輸出。

一、輸入

shell中的輸入,常採用read

◆ 一般形式:read 變數1 變數2 ...

◆ 例子:

# read vari_1 vari_2

abc 123 456

# echo $vari_1

abc# echo $vari_2

123 456

、輸出

1、echo

◆ 一般形式: echo -option string

◆ 常用引數:

\c 不換行(預設)

\f 進紙

\t 跳格

\n 換行

\e 使轉義字元生效

\e 使轉義字元失效(預設)

◆  例子:

# echo -e "ss\n"

ss#

2、cat

◆  說明:用於顯示檔案內容、建立檔案、顯示控制字元

顯示檔案內容時,一次行將內容系顯示完全,要分頁或分屏檢視可與more,less等組合使用

◆  例子:

a、檢視檔案內容

#cat /etc/passwd | more  《按enter翻頁》

#cat -n /etc/group  | less  《按enter或方向鍵翻頁,按ctrl+z結束》 顯示內容時,同時顯示行號

#cat a.txt b.txt

b、建立新檔案,並輸入內容

#cat  > group.txt      此時,從鍵盤輸入內容,並按ctrl-d即可結束輸入

c、cat還有乙個很實用的功能,顯示控制字元

#cat -v a.sh

hello^m  <^m就是控制字元》

當我們在windows上編寫好指令碼後上傳至linux後,語法沒錯誤,但執行時,總報錯,此時可能就是引入控制字元所致

我們可以通過該功能檢視,如帶^m,我們可以同ue的轉換功能,將dos轉換為unix格式,再執行

3、管道 |

◆  說明:可以管道將乙個命令的輸出傳遞給下乙個命令作為輸入,可理解為資訊的傳輸,從這一端傳遞給另一端

◆  形式:命令1 | 命令2

◆  例子:

# 顯示當前的登入使用者及ip

# who | awk ''

root (10.70.151.79)

oralce (10.71.149.54)

4、tee

◆  說明:可以用字母t來形象的表示,它將輸出的乙個副本輸送到標準輸出,另乙個副本拷貝到相應的檔案中

也就是當你想看到輸出的同時,也想將其存入到檔案中,此命令非常適合

◆  形式: tee -a file  <-a 表示追加到檔案末尾》

◆  例子:      

# pwd | tee path

/root

# cat path

/root

三、檔案重定向

1、標準輸入、輸出和錯誤

當我們在shell中執行命令時,每個程序都和三個開啟的檔案相聯絡,並使用檔案描述符來引用這些檔案 檔案

檔案描述符

預設輸入檔案     --- 標準輸入0鍵盤

輸出檔案     --- 標準輸出1螢幕

錯誤輸出檔案 --- 標準錯誤2螢幕

2、檔案重定向

2.1、重定向標準輸出

◆ 格式:command > file ; command >> file

◆  例子:

#cat /etc/group | awk -f: '' |  sort 1> sort_out 或

#cat /etc/group | awk -f: '' |  sort > sort_out

#who >> who.txt  

◆ 備註:

>:表示覆蓋寫入 

>>:表示追加寫入

2.2 、重定向標準輸入

◆ 格式:command < file ; command << delimiter  ("此處"文件)

◆  例子:

# sort < sort.txt

# sort < sort.txt > result.txt #將sort.txt進行排序並將結果儲存到result.txt檔案中

# sort >> result <>result #將從鍵盤輸入的字元進行排序,並將排序後的結果儲存到result檔案中

> a

> c

> b

> f

> e

> 1

> 3

> 2

> jiedingfu

# cat result 12

3abc

ef

◆ 備註:

上面這個例子,界定符可以根據個人喜好任意設定,此處為jiedingfu

2.3、重定向標準錯誤

◆ 例子:

cat exist_file not_exist_file  1>ok_file 2>error_file ,執行結果如下:

在該目錄下生成ok_file ; error_file兩個檔案

ok_file     :記錄exist_file檔案中內容

error_file :記錄錯誤資訊"cat: not_exist_file: no such file or directory"

2.4、合併標準輸出和標準錯誤 2>&1

◆ 例子:

cat exist_file not_exist_file  >ok_file 2>&1,執行結果:

標準輸出和標準錯誤均記錄到ok_file檔案中

shell中的輸入與輸出

shell中,有著三個標準檔案描述符。0代表標準輸入,1代表標準輸出,2代表標準錯誤 管道的功能是 將一條命令的返回值,作為另一條命令的引數 command1 command2 command3echo abc123 一般情況下直接列印 echo let s go 字串裡單引號,則用雙引號包裹 ec...

shell 輸入與輸出

一 echo 一般形式 echo string 常用命令 c 不換行 注 在linux 下必須使用 n 例如 echo e n what is your name c read name f 進紙 t 跳格 n 換行在 linux 下,使用 e 才能使轉移字元生效 如 1.echo e hello ...

shell的輸入與輸出

echo string echo命令輸出轉義符以及變數,如 home,並且可以讓系統執行tty命令 echo 007your home dictionary is home you are connected on tty c不換行 在linux中要使用 n來禁止換行 echo n f進紙 t跳格 ...