零散的shell使用小結

2021-06-13 11:46:02 字數 1654 閱讀 8996

入職這段時間大量使用shell,有一些零散的點,記在這裡備忘。

一 shell種的if

shell中的if與c中的if用法有很大區別,一般是結合[ ]使用(目前我只這麼用過:>),例如if [ $a -eq 0 ]; then do ... done。中括號實際上起真正的判斷作用,需要特別注意的是,[和]兩邊都需要有空格。

中,與數字比較時,有以下幾種關係操作符:

-eq 相等

-ne 不相等

-gt 大於

-ge 大於等於

-lt 小於

-le 小於等於

與字串比較時,有以下操作符:

= 等於

!= 不等於

注意:關係操作符兩邊都要加空格。

二 shell中的迴圈

for迴圈有以下幾種使用方法: 1

for file in $(ls); do

echo $file

done

$(ls)是把ls當做命令執行,輸出結果當做陣列的值,陣列的每個元素是按空白符分開的。

2 類似c語言的用法

for ((i=0; i<10; i++)); do

echo $i

done

(())中的變數可以不加$,在這裡與c語言一樣。 3

for i in 0 1 2 3; do

echo $i

done 4

for i in ; do

echo $i

done

while迴圈的用法: 

while 條件表示式; do

迴圈體done

條件表示式可以有許多形式,如for迴圈種(())的類似c語言的方法,還可以是if中類似的條件語句。

三 awk

在日誌分析時,awk和sed是最常用的命令,這裡簡單介紹一下。

1 基本方法:awk -f」分隔符」 『begin{}condition_1{}condition_2{}end{}』 input_file_1 input_file_2

2 begin{}和end{}是可選的,其實begin和end也相當於特殊的condition。begin{}是awk啟動時先執行的操作,其中的語句會在輸入檔案被處理之前執行,裡面一般是一些初始化操作。end{}是所有輸入檔案處理完之後執行的部分,在統計類的應用中常用。

3 condition是在處理輸入的每行之前檢查的條件,如果符合條件,才執行後面花括號中的語句。condition可以是==、>、《之類的條件語句,也可以使用正規表示式,如var~/abc/表示變數var匹配//中的正規表示式。

4 awk中有一些內建的變數,如$n表示正在處理的一行中的第n個字段(欄位是以-f後面的分隔符分的),欄位從1開始算起。$0表示整行。argind表示第幾個輸入檔案(mac系統下貌似有問題),nf表示當前行的字段個數,nr表示當前處理的行數。

5 condition之間(包括begin和end)沒有先後順序,可以把end{}寫在begin{}前面。

6 最後面是輸入檔案,可以有多個,awk會按檔名的順序處理輸入檔案。

四 函式

最後說一下shell的函式,函式的宣告方式為:

function foo()

呼叫方法:foo argv

函式可以接受引數,在函式中通過$1,$2來使用引數

注意:shell中,函式中的變數是全域性變數!

shell指令碼零散筆記

1 列印檔案的第一列 域 awk filename 2 列印檔案的前兩列 域 awk filename 3 列印完第一列,然後列印第二列 awk filename 4 列印文字檔案的總行數 awk end filename 5 列印文字第一行 awk nr 1 filename 6 列印文字第二行第...

零散的感想

全職英語學習已經兩周多了,馬上就三周了。這段時間的學習讓我變的很 懶 表現 計算機的學習由開始的每天學一點,發展到一點不學,到現在的不想看。靜下心來想想,這都是自己的問題,時間安排的不合理。應該每天都拿出點時間,乙個番茄的時間來溫習一下計算機,或者就不會太生疏,現在也不會糾結。乙個人不可能就幹一件事...

零散知識收集

success在介面com.opensymphony.xwork2.action中定義,另外同時定義的還有error,input,login,none。值得一提的是struts 2.0中的result不僅僅是struts 1.x中forward的別名,它可以實現除forward外的很激動人心的功能,...