shell腳本總結

Shell語言的總結 

Shell變量

1.用戶自定義  :標示符

              從右向左賦值

              引用變量  $

        清除變量 $unset Z

       例如 $count= 1

          $echo$HOME

2.命令行參數變量

 $0  與鍵入行的命令行一樣,包含腳本文件名

 $1  第一個參數

 $2

 $3

3.位置變量

$@ 包含所含命令行參數 “$1 $2 $3 $4 $5 $6 $7$8¥9”

$* 所包含命令行的參數 “$1 $2 $3 $4 $5 $6 $7$8¥9”

$# 包含命令行參的個數

$? 包含前一個命令的退出狀態

$$ 包含正在執行進程的號

 

 

4.環境變量:env

$PATH  shell的搜索路徑

$HOME  /etc/passwd文件中列出的用戶目錄

$IFS 默認爲空格 tab及換行符

$TERM 終端類型 常用的有vt100,ansi,vt200.xterm

 

Shell語句

1.說明性語句   #xxxxxxx

2.功能性語句    read(從標準輸入讀入一行)

          Expr(算術運算命令)

          Test(文件屬性 字符串 整數)

.test   $name  -eq   $1

 echo  $?

if   test   -f   $filename

 then 

     ……

 Fi

if  [   -f  $filename  ]

 then 

     ……

 fi

.整數測試

a -eq b 測試是否相等

a -ne b測試是否不相等

a -gt b 測試是否大於b

a -ge b 測試是否大於等於b

a -lt b 測試是否小於b

a -le b 測試是否小於等於b

.文件測試

-d name     測試name 是否爲一個目錄

-f name 測試name 是否爲普通文件

-L name測試name 是否爲符號鏈接

-r name 測試name 文件是否存在且爲可讀

-w name 測試name 文件是否存在且爲可寫

-x name 測試name 文件是否存在且爲可執行

-s name 測試name 文件是否存在且其長度不爲0

f1 -nt f2 測試文件f1 是否比文件f2 更新

f1 -ot f2 測試文件f1 是否比文件f2 更舊

 

三.結構性語句

1. If 模式

     Then

    fi

2.if 表達式

    Then

    命令表

   Else

    命令表

   Fi

記住 -f檢測是否爲文件  -d檢測是否爲目錄

4.分之語句

Case 字符串變量 in(case只能檢測字符串變量)

常量字符串)      //變量名等於 常量字符串則執行命令一

    命令表1

;;

 

常量字符串)

    命令表2;;

 

常量字符串)

    命令表3

;;

 

常量字符串)

    命令表4

;;

  ×)        //*表示其他模式

    命令5

;;

esac

 

 

5循環語句

A)for變量名 in 變量列表

   Do

    命令表

Done

變量依次取單詞表中的各個單詞,  每取一次單詞就執行一次循環體中的命令.  循環次數由單詞表中的單詞數確定命令表中的命令可以是一條也可以是由分號或換行符分開的多條。如果單詞表是命令行上的所有位置參數時可以在for語句中省略 “in  單詞表” 部分。直到變量名把變量列表中的所有變量都取到了   循環體纔會結束

 

 

6while 表達式

     Do

     命令表    //  表達式爲真    執行命令表

Done

while語句首先測試其後的命令或表達式的值,如果爲真,就執行一次循環體中的命令,然後再測試該命令或表達式的值,執行循環體,直到該命令或表達式爲假時退出循環。

while語句的退出狀態爲命令表中被執行的最後一條命令的退出狀態。

 

7.until 表達式

 Do

    命令表    //表達式爲假  直到表達式爲真則 退出循環

Done

until循環與while循環的功能相似,  所不同的是隻有當測試的命令或表達式的值是假時才執行循環體中的命令表否則退出循環.  這一點與while命令正好相反

 

 

8break  and  continue

配合循環語句  混合使用

break  n  則跳出n;  

continue語句則馬上轉到最近一層循環語句的下一輪循環上,  

continue  n則轉到最近n層循環語句的下一輪循環上

 

 

 

 

 

 

Shell函數

 

shell 函數

 

1.函數定義方式

function_name()

{

命令列表//發揮空間

 

}

 

function function_name() //這種不常用

{

命令列表//發揮空間

 

}

2.函數的參數傳遞

 

function_name 12 $value ..

 

12:函數體內引用12 ,用 $1 表示   

value:函數體內引用 value ,用 $2 表示

 

 

3.函數返回值調用

 代表函數的返回狀態 :$?

 

 1)有 return 的函數 $? 表示 return 的值

 2)沒有 return 的函數,$? 函數體內最後一條指令的返回狀態

 

4.函數輸出內容引用

通過反單撇號來引用函數輸出,一般爲字符串

count=`function_name $value`

 

5.函數的返回值

Fun $value

Echo $?

 

 

Shell變量的作用域

1.局部變量   作用於函數體內

    關鍵字 local

2.全局變量 作用於腳本內部任何地

         初始化以後的該變量的內容  否則爲空

Count= 5

3.獨立於腳本文件外的

   關鍵字 export



發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章