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...