溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

shell腳本總結

發布時間:2020-07-10 18:08:57 來源:網絡 閱讀:390 作者:pjq510cto 欄目:軟件技術

Shell語言的總結 

Shell變量

1.用戶自定義  :標示符

              從右向左賦值

              引用變量  $

        清除變量 $unset?。?/span>

       例如 $count=?。?/span>

          $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 ?。螅瑁澹欤斓乃阉髀窂?/span>

$HOME ?。澹簦悖穑幔螅螅鳎湮募辛谐龅挠脩裟夸?/span>

$IFS 默認為空格?。簦幔饧皳Q行符

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

 

Shell語句

1.說明性語句  ?。#?/span>

2.功能性語句   ?。颍澹幔洌◤臉藴瘦斎胱x入一行)

         ?。牛穑颍ㄋ阈g運算命令)

         ?。裕澹螅簦ㄎ募傩浴∽址≌麛担?/span>

.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.?。桑妗∧J?/span>

    ?。裕瑁澹?/span>

   ?。妫?/span>

2.if 表達式

   ?。裕瑁澹?/span>

    命令表

  ?。牛欤螅?/span>

    命令表

  ?。疲?/span>

記住?。鏅z測是否為文件 ?。錂z測是否為目錄

4.分之語句

Case 字符串變量?。椋睿ǎ悖幔螅逯荒軝z測字符串變量)

常量字符串)     ?。兞棵扔凇〕A孔址畡t執行命令一

    命令表1

;;

 

常量字符串)

    命令表2;;

 

常量字符串)

    命令表3

;;

 

常量字符串)

    命令表4

;;

  ×)       ?。硎酒渌J?/span>

    命令5

;;

esac

 

 

5循環語句

A)for變量名?。椋睢∽兞苛斜?/span>

  ?。模?/span>

    命令表

Done

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

 

 

6while 表達式

    ?。模?/span>

     命令表   ?。 ”磉_式為真    執行命令表

Done

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

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

 

7.until 表達式

?。模?/span>

    命令表   ?。磉_式為假  直到表達式為真則 退出循環

Done

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

 

 

8break ?。幔睿洹 。悖铮睿簦椋睿酰?/span>

配合循環語句  混合使用

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.局部變量   作用于函數體內

    關鍵字?。欤铮悖幔?/span>

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

         初始化以后的該變量的內容  否則為空

Count=?。?/span>

3.獨立于腳本文件外的

   關鍵字?。澹穑铮颍?/span>



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女