前言隨著linux系統在企業中應用的越來越多,伺服器自動化管理也變得越來越重要。linux伺服器自動化維護工作中,除了計畫任務的設定外,shell指令碼的應用也是非常重要的一部分。什麼是shell指令碼shell指令碼與windows/dos下的批處理相似,也就是用各類命令預先放入到乙個檔案中,方便一次性執行的乙個程式檔案,主要是方便管理員進行設定或者管理用的。但是它比windows下的批處理更強大,比用其他程式設計程式編輯的程式效率更高,它使用了linux/unix下的命令。shell指令碼的應用場景:
重複性操作
批量事務處理
自動化運維
服務執行狀態監控
定時任務執行
......注意!shell指令碼必須是可執行檔案(chmod +x ...)shell的作用——命令直譯器,翻譯官
/bin/bash支撐shell指令碼的執行linux壓縮核心放在/boot/目錄下編寫shell指令碼**
使用vi文字編輯器
每行一條linux命令,按執行順序一次編寫執行指令碼檔案啊
用source執行命令會切換路徑執行,用sh 不會切換路徑「 . / 」 的執行方式和sh一樣
重定向與管道操作互動式硬體裝置標準輸入:從該裝置接收使用者輸入的資料標準輸出:通過該裝置向使用者輸出資料標準錯誤:通過該裝置報告執行出錯資訊
重定向操作
管道操作符號" | "shell變數的作用、型別變數的作用為靈活管理linux系統提供特定引數,有兩層意思
變數名:使用固定的名稱,由系統預設或使用者定義
變數值:能夠根據使用者設定、系統環境的變化而變化變數的型別
自定義變數:由使用者自己定義、修改和使用
環境變數:由系統維護,用於設定工作環境
位置變數:通過命令列給指令碼程式傳遞引數
預定義變數:bash中內建的一類變數,不能直接修改自定義變數定義乙個新的變數變數名以字母或下劃線開頭,區分大小寫,建議全大寫變數名=變數值(「=」賦予符號)
檢視變數的值,用「echo」命令
賦值時使用引號
雙引號:允許通過$符號引用其他變數值
單引號:禁止引用其他變數值,$視為普通字元
反撇號:命令替換,提取命令執行後的輸出結果從鍵盤輸入內容為變數賦值
read [-p "提示資訊"] 變數名
設定變數的作用範圍,兩種格式可以混合使用格式1:export 變數名格式2:export 變數名=變數值整數變數的運算expr 變數1 運算子 變數2 [運算子 變數3] ……常用運算子
加法運算:+
減法運算:-
乘法運算:*
除法運算:/
求模(取餘)運算:%
特殊的shell變數環境變數由系統提前建立,用來設定使用者的工作環境配置檔案:/etc/profile、~/.bash_profile常見的環境變數:
pwd、path
user、shell、home位置變數
表示為$n,n為1~9之間的數字預定義變數
$#:命令列中位置變數的個數
$*:所有位置變數的內容
$?:上一條命令執行後返回的狀態,當返回狀態值為0時表示執行正常,非0值表示執行異常或出錯
$0:當前執行的程序/程式名
shell指令碼之程式設計規範與變數 vnvb的部落格
shell指令碼概念 將要執行的命令按順序儲存到乙個文字檔案,給該檔案乙個可執行許可權,便可執行。shell指令碼的構成 1 指令碼申明 指令碼宣告是指明用哪個直譯器來解釋 2 注釋資訊 注釋資訊是指明這個指令碼的一些說明資訊。就知道這個指令碼時幹什麼用的了,這個資訊不執行 3 可執行語句 進行執行...
Shell程式設計規範與變數
shell的作用 編寫第乙個shell指令碼 重定向與管道操作 shell變數的作用 型別 自定義變數 特殊的shell變數 shell指令碼就是將要執行的命令按順序儲存到乙個文字檔案,並給該檔案可執行許可權,方便一次性執行的乙個程式檔案。主要是方便管理員進行設定或管理,可結合各種shell控制語句...
Shell程式設計規範與變數
shell指令碼的概念 將執行的命令按順序儲存到乙個文字檔案 給該檔案可執行許可權 可結合各種shell空值語句已完成更複雜的操作 shell指令碼應用場景 重複性操作 互動性任務 批量事務處理 服務執行狀態監控 定時任務執行 什麼是 shell指令碼 呢?簡單的說,只要將平時使用的各種linux命...