Linux筆記之shell script

Sehll script是利用shell的功能所寫的一個程序,這個程序使用純文本文件,將一些shell的語法與命令寫在裏面,搭配正則表達式、管道命令與數據流重定向等功能,已達到咱們因此想要的處理目的。正則表達式

1、script的編寫與執行shell

執行sh文件的方法:bash

  • 直接命令執行(文件必須具有rx權限)

使用絕對路徑來執行函數

使用相對路徑來執行調試

將sh文件放在PATH變量指定的目錄下,例如:~/bin/進程

  • 以bash進程來執行:經過「bash shell.sh」或「sh shell.sh」來執行(文件只需具有r權限,且當前目錄下存在該sh文件)
  • source或者小數點(.)來執行,例如:source shell.sh

2、script的執行方式區別ip

利用直接執行的方式來執行script:在子進程中執行(直接命令執行、bash進程執行都屬於這種)字符串

利用source來執行腳本:在父進程中執行(命令格式:source 文件名)it

3、善用判斷式(test或者中括號)io

一、test命令

檢測系統上面某些文件或者是相關的屬性、字符串、多重條件判斷

舉例:

  • 用戶首選輸入一個文件名
  • 若是文件不存在,則輸出文件不存在並中斷程序;
  • 若文件存在,則判斷是文件或目錄,而後輸出相應結果;
  • 判斷用戶對這個文件或者目錄所擁有的權限,並輸出權限數據;

二、【】判斷符號

在方括號中的每一個組件都須要用空格隔開,變量用雙引號括起來,常量用單或者雙引號括起來

例如:

箭頭所對應的都是空格。

三、shell script默認變量$0,$1,。。。

執行腳本的後面能夠帶參數。

$0默認爲文件名,其後的是參數。$#表明參數個數,$@表明"$1"," $2","$3"等$*表明「$1c$2c$3」,其中c是分隔符,默認是空格鍵

舉例:

執行一個帶參數的script,要求屏幕顯示:

  • 文件名;
  • 共有幾個參數;
  • 若參數小於2則告知參數太少;
  • 所有參數內容;
  • 第一個參數;
  • 第二個參數;

4、條件判斷式

一、If...then

if [ 條件判斷式一 ]; then

    程序段

elif [  條件判斷式二 ];  then

    程序段

else

    程序段

fi

(注意事項:if 和 [ 之間須要有空格,; 和 then之間也須要空格)

舉例:

二、case...esac

case  $變量名稱  in

    "第一個變量內容")

        程序段

        ;;

    "第二個變量內容")

        程序段

        ;;

    *)

        程序段

        exit 1

        ;;

    Esac

舉例:

5、函數

function fname(){

程序段

}

其中function也是擁有內置變量的,它與shell script很相似,函數名稱表示$0,後續變量是以$1,$2...替代的

6、循環

一、    while [ condition ]

    do

    程序段

    done

二、  until [ condition ]

    do

    程序段

    done

三、  for var in conl con2 con3

    do

    程序段

    done

四、  for ( ( 初始值; 限制值; 執行步長 ) )

    do

    程序段

    done

7、追蹤與調試

sh [-nvx] 文件名

-n:不要執行腳本,僅查詢語法的問題

-v:在執行腳本前,先將腳本的內容輸出到屏幕上

-x:將使用到的腳本內容顯示到屏幕上

相關文章
相關標籤/搜索