前言: 大家對shell腳本應該都不算陌生了,如果突然問你什麼是shell腳本?是乾什麼用的?由什麼組成以及怎麼使用?變數的概念是什麼?作用範圍是什麼?變數間的算術運算怎麼表示?你能很容易答出來嗎 本文整理自博主當年的學習筆記,若有疏漏歡迎指正! Shell編程規範與變數 學習目標: 掌握shell ...
前言:
大家對shell腳本應該都不算陌生了,如果突然問你什麼是shell腳本?是乾什麼用的?由什麼組成以及怎麼使用?變數的概念是什麼?作用範圍是什麼?變數間的算術運算怎麼表示?你能很容易答出來嗎
本文整理自博主當年的學習筆記,若有疏漏歡迎指正!
Shell編程規範與變數
學習目標:
掌握shell腳本編程規範
掌握管道,重定向,變數
目錄結構:
Shell腳本的概念
- 將要執行的命令按順序保存到一個文本文件
- 給文件可執行許可權,便可運行。
- 可以結合各種shell控制語句以便完成更複雜的操作
- 腳本文件一般以.sh結尾,執行腳本的命令是sh
Shell腳本應用場景
- 重覆性操作
- 批量事物處理
- 自動化運維
- 服務運行狀態監控
- 定時任務執行
- ……
Shell腳本的組成
1、 腳本聲明 #!/bin/bash一般是這樣的
2、 註釋信息 以#開頭註釋腳本大概情況
3、 可執行語句 就是指正文,命令的疊加
編寫shell腳本
[root@poll ~]# vi a.sh //編輯腳本文件,腳本文件一般都是以.sh結尾的
#!/bin/bash //聲明這是·一個腳本
#This is my first shell-script //註釋一般用來記錄腳本的功能
#2018-03-16 //註釋 記錄腳本時間
cd /boot //切換到/boot目錄下
echo "當前目錄位於:" //顯示雙引號內的內容
pwd //顯示當前目錄
echo "其中以vml開頭的文件包括:" //顯示雙引號內的內容
ls -lh vml* //執行命令
註意:有交互用read -p 沒有用echo
Shell腳本的執行方式
1、 絕對路徑
2、 相對路徑
3、 sh腳本
4、 source腳本
shell腳本變數揭秘
變數概念與分類
變數的概念:
1、 變數用來存放系統或用戶需要使用的特定參數或者值
2、 變數的的值可以根據用戶設定或者系統環境的變化面相應變化
3、 在shell腳本中使用命令可以使腳本更加靈活,適應性更強
變數的分類:
自定義變數:由用戶自己定義,修改和使用
環境變數:由系統維護,用於設定系統環境
位置變數:通過命令行給腳本程式傳遞參數
預定義變數:bash中內置的一種變數,不能直接修改
變數的定義與輸出
定義一個新的變數
格式:變數名=變數值
變數名以字母或者下劃線開頭
區分大小寫
賦值可使用引號
雙引號:允許通過$符號引用其他變數值
單引號:禁止引用其他變數值,$視為普通字元
反撇號``或$():命令替換,提取命令的執行結果
輸入輸出
輸入格式:read [-p “提示信息”] 變數名
輸出格式:echo $變數名
變數作用範圍
l ’預設情況下,新定義的變數只在當前shell環境中有效,因此稱為局部變數
l 當進入子程式或新的子shell環境時,局部變數無法再使用
l 為了使用戶定義的變數在所有的子shell環境中能夠繼續使用,減少重覆設置工作,可以通過內部命令export將制定的變數導出為“全局變數”
格式1:export 變數名…
格式2:export 變數名=變數值 …
兩種格式可以混合使用
變數的算術運算
l 變數的數值運算多用於腳本程式的過程式控制制
l 只能進行簡單得整數運算,不支持小數運算
l 整數值得運算主要通過內部命令expr進行
l 格式
expr 變數1 運算符 變數2 [運算符 變數3]
l +:加法運算
l -:減法運算
l \* :乘法運算,註意不能僅使用“*”符號,否則將被當成文件通配符
l /:除法運算
l %:求模運算,又稱為取餘運算,用來計算數值相除後的餘數
實例:
[root@poll ~]# x=35
[root@poll ~]# y=16
[root@poll ~]# expr $x + $y
51
[root@poll ~]# expr $x - $y
19
[root@poll ~]# expr $x \* $y
560
[root@poll ~]# expr $x / $y
2
[root@poll ~]# expr $x % $y
預定義變數
l 預定義變數是由bash程式預先定義好的一類特殊變數,用戶只能使用預定義變數,而不能創建新的預定義變數,也不能直接為預定義變數賦值
l 預定義變數使用“$”符號和另一個符號組合表示
l $* $@
保存了腳本要處理的所有參數
l $0
保存了腳本的名稱
l $?
保存著命令或者腳本運行狀態碼,上一條命令運行成功結果顯示0
l $#
保存了腳本要處理的參數個數
位置變數
l 為了在使用shell腳本程式時,方便通過命令行為程式提供操作數,bash引入了位置變數的概念
l 位置變數有$0,$n,n為1~9之間的數字
l $0:第一個欄位表示命令名或腳本程式名
l $1為腳本要處理的第一個參數,$2為第二個參數,……
l Shell腳本最多可以直接處理9個參數
環境變數
l 環境變數指的是出於運行需要而由Linux系統提前創建的一類變數,主要用於設置用戶的工作環境
l 使用env命令可以查到當前工作環境下的環境變數
l PATH環境變數用於設置可執行程式的預設搜索路徑
l 環境變數的全局配置文件為/etc/profile,每個用戶還有自己的獨立的配置文件~/.bash_prpfile
這是shell編程初步接觸,後續發各種shell編程語句。下麵有一個簡單的腳本樣例
------一個小計算器-----
#!/bin/bash
#this
read -p "請輸入第一個整數:" ONE
read -p "請輸入第二個整數:" TWO
read -p "請輸入運算符:" TH
echo "$ONE$TH$TWO=$(($ONE $TH $TWO))"