Shell程式設計規範與變數
阿新 • • 發佈:2021-07-07
Shell指令碼概述
Shell指令碼的概念
- 將要執行的命令按順序儲存到一個文字檔案
- 給該檔案可執行許可權
- 可結合各種Shell控制語句以完成更復雜的操作
Shell指令碼應用場景
- 重複性操作
- 互動性任務
- 批量事務處理
- 服務執行狀態監控
- 定時任務執行
Shell的作用
Shell的作用——命令直譯器,“翻譯官”
- 介於系統核心與使用者之間,負責解釋命令列
使用者的登入Shell
- 登入後預設使用的Shell程式,一般為/bin/bash
- 不同Shell的內部指令、執行環境等會有所區別
編寫第一個Shell指令碼
編寫指令碼程式碼
- 使用vim文字編輯器
- 每行一條Linux命令,按執行順序一次編寫
執行指令碼檔案
- 方法一:指令碼檔案路徑(絕對路徑與相對路徑)
[root@localhost~]#./first.sh |
- 方法二:sh指令碼檔案路徑
[root@localhost~]#sh first.sh |
- 方法二:source指令碼檔案路徑
[root@localhost~]#source first.sh |
注:這裡不建議使用第一種方法(要在當前目錄下執行性,不方便)
重定向與管道操作
互動式硬體裝置
- 標準輸入:從該裝置接收使用者輸入的資料
- 標準輸出:通過該裝置向用戶輸出資料
- 標準錯誤:通過該裝置報告執行出錯誤資訊
型別 | 裝置檔案 | 檔案描述編號 | 預設裝置 |
標準輸入 | /dev/stain | 0 | 鍵盤 |
標準輸出 | /dev/stdout | 1 | 顯示器 |
標準錯誤輸出 | /dev/stderr | 2 | 顯示器 |
重定向操作
型別 | 操作符 | 用途 |
重定向輸入 | < | 從指定的檔案讀取資料,而不是從鍵盤輸入 |
重定向輸出 | > | 將輸出結果儲存的指定的檔案(覆蓋原有內容) |
>> | 將輸出結果追加到指定的檔案尾部 | |
標準錯誤輸出 | 2> | 將錯誤資訊儲存到指定的檔案(覆蓋原有內容) |
2>> | 將錯誤資訊追加到指定的檔案中 | |
混合輸出 | &> | 將標準輸出、標準錯誤的內容儲存到同一個檔案中 |
管道操作符號“|”
- 將左側的命令輸出結果,作為右側命令的處理物件
AWK:
AWK是一種處理文字檔案的語言,是一個強大的文字分析工具
Shell變數的作用、型別
變數的作用
用來存放系統和使用者需要使用的特定引數(值)
- 變數名:使用固定的名稱,由系統預設或使用者定義
- 變數值:能夠根據使用者設定、系統環境的變化而變化
變數的型別
- 自定義變數:由使用者自己定義、修改和使用
- 特殊變數:環境變數、只讀變數,位置變數、預定義變數
自定義變數
定義一個新的變數
- 變數名以字母或下劃線開頭
檢視變數的值
賦值時使用引號
- 雙引號:允許通過$符號引用其他變數值
- 單引號:禁止引用其他變數值,$視為普通字元
- 反撇號:命令替換,提取命令執行後的輸出結果
從鍵盤輸入內容為變數賦值
read [-p “提示資訊”] 變數名 |
整數變數的運算
expr 變數1 運算子 變數2 [運算子 變數3]... |
常用運算子
- 加法運算:+
- 減法運算:-
- 乘法運算:\*
- 除法運算:/
- 求模(取餘)運算:%
特殊的Shell變數
環境變數
- 由系統提前建立,用來設定使用者的工作環境
- 配置檔案:/etc/profile、 ~/.bash_profile
常見的環境變數
- PWD、PATH
- USER、SHELL、HOME
只讀變數
- 用於變數值不允許被修改的情況
centos7安裝JDK
##把以下四行貼上到環境變數中
##最後別忘記啟用