21.7.7 t2
一、Shell指令碼概述
1.1、shell指令碼的概念
-
將要執行的命令按順序儲存到一個文字檔案
-
給該檔案可執行許可權
-
可結合各種shell控制語句以完成更復雜的操作
1.2、shell指令碼應用場景
-
重複性操作
-
互動性任務
-
批量事務處理
-
服務執行狀態監控
-
定時任務執行
1.3、shell的作用——命令翻譯器,“翻譯官”
介於系統核心與使用者之間,負責解釋命令列
1.4、使用者的登入shell
二、shell程式設計規範
2.1、編寫指令碼程式碼
使用vim文字編輯器或者vi文字編輯器
每行一條Linux命令,按執行順序依次編寫
2.2、賦予可執行許可權
使指令碼具有可執行屬性
2.3、執行指令碼檔案的方法
指令碼檔案路徑(絕對路徑與相對路徑,必須有x許可權)
sh 指令碼檔案路徑
source 指令碼檔案路徑(也可以通過.來執行)
2.4、更完善的指令碼構成
指令碼宣告
若第一行為
“#!/bin/bash”,表示此行以下的程式碼語句是通過/bin/bash程式來結實執行,#!/bin/bash為預設直譯器,還有其他型別的直譯器,比如#!/usr/bin/python、#!/usr/bin/expect。
註釋資訊
以“#”開頭的語句表示為註釋資訊,被註釋的語句在執行指令碼時將不被執行。
可執行語句
比如echo命令,用於輸出“ ”之間的字串。
2.5、重定向與管道
互動式硬體裝置
標準輸入:從該裝置接收使用者輸入的資料
標準輸出:通過該裝置向用戶輸出資料
標準錯誤:通過該裝置報告執行出錯資訊
重定向操作
管道操作符號“|”
將左側的命令輸出結果,作為右側命令的處理物件
格式為:cmd1 | cmd2 [… | cmdn]
2.6、Shell變數的作用、型別
變數的作用
用來存放系統和使用者需要使用的特定引數(值)
變數名:使用固定的名稱,由系統預設或使用者定義
變數值:能夠根據使用者設定、系統環境的變化而變化
特殊的型別
自定義變數:由使用者自己定義、修改和使用
特殊變數:環境變數,只讀變數,位置變數,預定義變數
2.7、自定義變數
定義一個新的變數
變數名以字母或下劃線開頭,區分大小寫,建議全大寫
變數名=變數值
檢視變數的值echo $變數名
賦值時使用引號
雙引號: 允許通過$符號引用其他變數值
單引號: 禁止引用其他變數值,$視為普通字元
反撇號: 命令替換,提取命令執行後的輸出結果
從鍵盤輸入內容為變數賦值
read [-p "提示資訊"] 變數名
設定變數的作用範圍
格式1:export 變數名
格式2:export 變數名=變數值
整數變數的運算
expr 變數1 運算子 變數2 [運算子 變數3]
2.8、特殊的Shell變數
環境變數
由系統提前建立,用來設定使用者的工作環境
配置檔案:/etc/profile、~/.bash_profile
常見的環境變數有:
PWD、PATH
USER、SHELL、HOME
只讀變數
用於變數值不允許被修改的情況