Linux之Shell程式設計

2022-10-02 07:09:07 字數 2602 閱讀 1838

shell是乙個命令直譯器,他為使用者提供了乙個向linux核心傳送請求以便執行程式的介面系統級程式,使用者可以用shell來啟動、掛起、停止甚至是編寫一些程式

指令碼格式要求:1、指令碼以#!/bin/bash開頭  2、指令碼需要有可執行許可權

指令碼常用的執行方式

方式1(輸入指令碼的絕對路徑或相對路徑)說明:首先要賦予helloworld.sh指令碼+x許可權,再執行指令碼  ./hello.sh    /root/shcode/hello.sh

方式2(sh+指令碼)說明:不用賦予指令碼+x許可權,直接執行即可  【sh hello.sh】

【vim hello.sh】

shell變數介紹:

1、linux shell中的變數分為,系統變數和使用者自定義變數

2、系統變數:$home、$pwd、$shell、$user等等,比如:echo $home等等

3、顯示當前shell中所有變數:【set】

自定義變數基本語法:

1、定義變數:變數名=值

2、撤銷變數:【unset 變數】

3、宣告靜態變數:【readonly 變數】,注意:不能unset

定義變數的規則:

1、變數名稱可以由字母、數字和下劃線組成,但是不能以數字開頭

2、等號兩側不能有空格

3、變數名稱一般習慣為大寫

將命令的返回值賦給變數

1、a=`date`反引號,執行裡面的命令,並把結果返回給變數a

2、a=$(date)等價於反引號

設定環境變數

【export 變數名=變數值】將shell變數輸出為環境變數/全域性變數

【source 配置檔案】讓修改後的配置資訊立即生效

【echo $變數名】查詢環境變數的值

快速入門:1、在/etc/profile檔案中定義tomcat_home環境變數;2、檢視環境變數tomcat_hom的值;3、在另乙個shell程式中使用tomcat_hom;注意:在輸出tomcat_hom環境變數之前,需要讓其生效【source /etc/profile】

shell指令碼多行注釋【:《位置引數變數介紹:當我們執行乙個shell指令碼是,如果希望獲取到命令列的引數資訊,就可以使用到位置引數變數,比如:./myshell.sh 100 200,這個就是乙個執行shell的命令列,可以在myshell指令碼中獲取到引數資訊

基本語法:

$n(功能描述:n為數字,$0代表命令本身(./myshell.sh 100 200,其中$0代表./myshell.sh,$1代表100),$1-$9代表第一到第九個引數,十以上的引數需要用大括號包含,如$)

$*(功能描述:這個變數代表命令列中所有的引數(100和200),$*把所有的引數看成乙個整體)

$@(功能描述:這個變數也代表命令列中所有引數,不過$@把每個引數區分對待)

$#(功能描述:這個變數代表命令列中所有引數的個數)

預定義變數介紹:就是shell設計者事先已經定義好的變數,可以直接在shell指令碼中使用

基本語法:

$$(功能描述:當前程序的程序號(pid))

$!(功能描述:後台執行的最後乙個程序的程序號)

運算子基本語法:

1、"$((表示式))"或"$[表示式]"或者expr m + n

2、注意expr運算子間要有空格,如果希望將expr的結果賦給某個變數,需要使用``(反引號)括起來

3、expr m - n

4、expr \*,/,% 乘,除,取餘

條件判斷基本語法:

if 【 condition 】(注意condition前後要有空格)

then

echo」equal「

fi#非空返回ture,可使用$?驗證(0為ture,>1為false)

常用的判斷條件:

1、=,字串比較

2、兩個整數比較:-lt小於;-le小於等於;-eq等於;-gt大於;-ge大於等於;-ne不等於

3、按照檔案許可權進行判斷:-r有讀的許可權;-w有寫的許可權;-x有執行的許可權

4、按照檔案型別進行判斷:-f檔案存在並且是乙個常規的檔案;-e檔案存在;-d檔案存在並是乙個目錄

case $變數 in

"值1")

如果變數的值等於值1,則執行程式1

"值2")

如果變數的值等於值1,則執行程式1

如果變數的值都不是以上的值,則執行此程式

esac

for迴圈

基本語法1:

for 變數 in 值1 值2 值3...

do程式

done

基本語法2:

for((初始值;迴圈控制條件;變數變化))

do程式

done

while迴圈

while 【 條件判斷式 】

do程式

done

read讀取控制台輸入

【read 選項 引數】選項:-p指定讀取值時的提示符;-t指定讀取值時等待的時間(秒),如果沒有在指定的時間內輸入,就不再等待了;

函式介紹:有系統函式,也可以自定義函式

自定義函式基本語法:

function funname()

action;

【return int;】

呼叫直接寫函式名:funname【值】

linux之shell程式設計

shell你只需要了解這麼多 補充 1.第七部分特殊字元的使用 特殊字元用在shell指令碼中即可 2.第八部分中轉義字元的理解 shell命令列中特殊字元與其轉義詳解 去除特殊含義 這部分主要給大家詳細介紹了shell命令列中特殊字元與其轉義 去除特殊含義 的相關資料,文中介紹的很詳細,相信對大家...

Linux之Shell程式設計

定義變數 a 100 echo a a 撤銷變數 unset a echo a a 定義靜態變數 readonly b 100 echo b b 將命令的返回值賦值給變數 echo 0 1 2 echo echo echo sh 100 200echo 當前的程序號 後台方式執行 sh sh ech...

Linux之shell程式設計基礎

變數在shell中分為 本地變數 環境變數 位置引數 本地變數 僅可在使用者當前shell生命期的指令碼中使用的變數,本地變數隨著shell程序的消亡而無效,本地變數在新啟動的shell中依舊無效,類似於c c 中的區域性變數的概念 環境變數 適用於所有登入程序所產生的子程序 位置引數 用於向she...