Shell腳本基礎
- shell編程:過程式、解釋執行
- 編程語言的基本結構:
- 各種系統命令的組合
- 數據儲存:變量、數組
- 表達式
- 流程控制
- shell腳本的shebang機制:
- shebang必須在首行
-
格式:#!/bin/bash
</br>
- 編程語言的基本結構:
-
變量:在內存中分配空間用於暫存數據
- 變量的類型:字符串、數值
- 強類型語言:在使用變量之前必須聲明變量的類型,不允許隱式的類型轉換
- 弱類型語言:使用前無需聲明,程序執行時將會進行隱式的數據類型轉換
</br>
-
局部變量:生效範圍爲當前shell進程;對其他shell進程無效(包括shell)
- 變量賦值:
name='value' - value的值:
(1)字符串:
name='str
(2)引用其他變量:
name="$PATH"
(3)命令引用:
name=`COMMAND`
- 變量賦值:
-
變量引用:
${name}、$name- " ":弱引用,""中的變量會被替換爲變量值
-
' ':強引用,''中的變量不會被替換爲變量值,而保持原字符串
- 顯示已定義的所有變量:
set - 刪除變量:
unset name
</br></br>
-
環境變量:生效範圍爲當前shell及其子進程
- 環境變量聲明、賦值:
export name='value'
declare -x name='value' -
顯示所有環境變量:
env
export
declare -x -
只讀變量:只能聲明,聲明後不能修改和刪除
- 聲明只讀變量:
readonly name - 查看只讀變量:
readonly -p
- 聲明只讀變量:
-
位置變量:在腳本中調用通過命令行傳遞給腳本的參數
$1,$2,$... : 對應第1、第2個參數 $* : 所有參數,全部參數合爲一個字符串 $@ : 所有參數,全部參數爲獨立的字符串 shift : 每執行一次shift,位置變量的個數就會減一。 set -- : 清空所有位置參數
-
特殊變量:
$0 :腳本自身 $? :返回上一條命令的執行狀態,0爲執行成功,非0爲失敗 $# :位置參數總數 $$ : 當前進程的PID
-
exit [n]:自定義退出狀態碼
- 注意:腳本中一旦遇到exit命令,腳本會立即終止;終止退出狀態取決於exit命令後面的數字
- 注意:如果未給腳本指定退出狀態碼,整個腳本的退出狀態碼取決於腳本中執行的最後一條命令的狀態碼