Shell指令碼實踐整理

2021-09-29 10:14:54 字數 1759 閱讀 8237

準備(建立測試檔案):

1. 按行讀取檔案內容,且過濾包含「#」字元的行

**:

#!/bin/bash

file_name=

"test"

cat$file_name

|while

read line

do#過濾配置檔案中包含"#"的行if[

[$=~ "#"]]

;then

continue;fi

echo

$done

結果:

hrx@@@:~/test/shell$ ./test.sh 

一行一列 一行二列 一行三列

二行一列 二行二列 二行三列

三行一列 三行二列 三行三列

解釋:1、使用cat命令獲取檔案test的內容,然後一行一行的把資料讀取到line變數,直到讀完為止。

2、使用=~符號判斷line中是否包含「#」,包含則跳過

2. 獲取檔案的md5並按空格拆分出md5值

**:

#!/bin/bash

file_name=

"test"

echo

$(md5sum $

)echo

$(md5sum $

|cut -d" " -f1)

結果:

hrx@@@:~/test/shell$ ./test.sh 

e662a3938d12efcf8d168fea7ff96cc8 test

e662a3938d12efcf8d168fea7ff96cc8

解釋:1、使用md5sum命令查詢檔案所返回的格式為【md5值 檔名】,中間以空格符分隔。

2、使用cut命令拆分出第一段字元(-d:自定義分隔符,這裡定義空格,也可定義雙引號之類的,不過要轉義)(-f:定義要哪一段,f後面的數字表示段號,從1開始)

3. 查詢檔案中包含某字段的一行,並寫入新的檔案

**:

#!/bin/bash

file_1=

"test"

file_2=

"test2"

#獲取包含某字串的一行

str=

$(grep -w "二行二列" $

)#將字串寫入檔案test2中

echo

$>>

$

結果:

hrx@@@:~/test/shell$ ./test.sh 

二行一列 二行二列 二行三列

hrx@@@:~/test/shell$ cat test2

二行一列 二行二列 二行三列

解釋:1、使用grep查詢檔案中包含「二行二列」字元的一行(-w:為完全匹配)

2、將字串寫入檔案test2中(>:為寫入檔案,會清空之前內容)(>>:為追加內容到檔案)

Shell 指令碼實踐

shell 用 c 語言編寫的程式,既是一種命令列語言,又是一種程式語言,用 shell 編寫的稱為指令碼程式 shell script 1 作為可執行程式 chmod x test.sh test.sh 2 作為直譯器引數 sh test.sh我們可以在執行指令碼時,傳遞引數,指令碼內獲取引數的格...

Shell 指令碼實踐

1.指令碼判斷命令輸出是否為空 1 判斷字串為空 if str if x str x if z str n 為非空 注意 都要代雙引號,否則有些命令會報錯,養成好習慣吧!2.輸入y n 可以使用判斷符號進行資料的判斷,如檢查某變數是否為空 z shell 需要注意的是中括號 內的元件必須以空格隔開。...

shell指令碼實踐3 2018 03 29

1.echo 變數 1.txt 可以實現向檔案中輸入資訊 command 1.txt 可以實現向檔案中輸入資訊,是將命令執行的結果輸入檔案 2.wc l 1.txt 此命令統計檔案行數時,顯示結果為兩列,一列是行數,一列是檔名,如果只利用行數,需要用cut將其獲取出來 3.將從windows複製過來...