Linux必須掌握的shell指令碼基礎

專注的阿熊發表於2020-03-09

1. shell 基本語法
shell:
shell 是一個命令直譯器,它在作業系統的最外層,負責直接與使用者進行對話,把使用者的輸入解釋給作業系統,並處理各種各樣的作業系統的輸出結果,輸出到螢幕反饋給使用者。


什麼是 shell 指令碼:
把 Linux 命令或語句放在一個檔案中,透過這個程式檔案去執行,這個程式為 shell 指令碼或 shell 程式;可以在指令碼中輸入系統的命令以及相關的語法語句組合,比如變數,流程控制語句等,把他們有機結合起來就形成了一個功能強大的 shell 指令碼。


建立 shell 程式的步驟:
(1)建立一個包含命令和控制結構的檔案,vim first.sh


(2)修改這個檔案的許可權使它可以執行,chmod +x first.sh


(3)檢測語法錯誤;


(4)執行指令碼。


執行 shell 指令碼的方式:
(1)透過絕對路徑執行,/root/first.sh(需要新增可執行許可權x)


(2)bash first.sh 或 sh first.sh(可以不新增可執行許可權)


(3)source first.sh(可以不新增可執行許可權,在當前 shell 執行)


(4)sh < cal.sh,cat cal.sh |sh,cat cal.sh |bash(可以不新增可執行許可權)


初識 shell 指令碼:
#!/bin/bash                
# it is a shell!           
echo "hello world!"
 
# 第一行:命令直譯器型別
# 第二行:註釋資訊
2. shell 變數及運用 
變數設定規則:
(1)變數名稱通常是大寫字母,可以由數字、字母(大小寫)和下劃線組成。變數名區分大小寫,不能以數字開頭;


(2)a=10,= 的作用是賦值,= 兩邊不能有空格;


(3)變數儲存的資料型別是整數型和字串型;


(4)字串型建議加引號。如果字串中有空格,要用單引號‘’或雙引號“”包含起來;


(5)變數呼叫時,在變數前加 $,$a;


(6)如果需要增加變數的值,可以進行變數值的疊加。變數需要用雙引號包含“$變數名”或用${變數名}包含。






變數的分類:
按照變數的作用劃分:


(1)使用者自定義變數(字母或下劃線開頭,不能以數字開頭)


(2)環境變數:儲存和系統操作環境相關的資料


(3)位置引數變數:
向指令碼中傳遞引數或資料的,變數名不能自定義,變數的作用是固定的


(4)預定義變數:是 bash 中已經定義好的變數,變數名不能自定義,變數的作用是固定的


按照變數的作用域劃分:


(1)全域性變數:環境變數,值不隨 shell 指令碼的執行結束而消失,值傳遞給子 shell 而不傳遞給父 shell


       env 命令檢視所有全域性變數:






       export 宣告全域性變數:






       新增環境變數:






(2)區域性變數:是 shell 程式內部定義的,其使用範圍僅限於定義它的程式,對其它程式不可見。包括使用者自定義變數、位置變數和預定義變數






命令的替換:
使用 $() 或反引號。echo $(pwd) 或 echo `pwd`


命令的巢狀使用:
使用 $($())






單引號和雙引號:
在單引號中,所有的字元(包括特殊字元)都將解釋成字元本身成為普通字元;


在雙引號中,除了 $、'' 和 \ 以外所有的字元都解釋成字元本身。


刪除變數:
unset 變數名:刪除變數






定義變數的配置檔案:
/etc/profile:系統全域性環境和登陸系統的一些配置


/etc/bashrc:shell 全域性自定義配置檔案,用於自定義 shell


/root/.bashrc:用於自定義某個使用者的bash


/root/.bash_profile:使用者單獨自定義某個使用者的系統環境


插入永久變數:(1)vim /etc/profile;(2)在最後一行寫入 export var8=100,儲存並退出;(3)source /etc/profile


位置變數:




特殊變數:
$* 以一個單字串顯示所有向指令碼傳遞的引數
$# 傳遞到指令碼的引數的個數
$$ 當前程式的程式號 PID
$? 顯示最後命令的退出狀態;0表示沒有錯誤,其他值都表示有錯誤
$! 後臺執行的最後一個程式的程式號 PID
3. 數學運算
expr 命令:
(1)對數字的基本計算;做比較時,輸出結果為假時為0,1為真;特殊符號用轉義符






(2)對字串的處理






$(()):
運算子 意義
++   -- 遞增   遞減
+   -   !~ 正   負   邏輯與取反
+   -   *   /   % 加   減   乘   除   餘數
<   <=   >   >= 比較大小
==   != 相等   不相等
>>   << 向左位移   向右位移
&   ^   | 按位的與   按位的異或   按位的或
&&   || 邏輯與   邏輯或
?: 條件判斷
 


計算從1加到100的值:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2679254/,如需轉載,請註明出處,否則將追究法律責任。

相關文章