Shell編程規範與變量

Shell腳本概述

隨着Linux系統在企業中的應用越來越多,服務器的自動化管理也越來越重要。一些複雜的維護工作中,一個恰到好處的Shell腳本,可以批量處理、自動化的完成一系列維護任務,從而減輕管理員的負擔。

Shell腳本的概念

將要執行的命令按順序保存到一個文本文件
給該文件可執行權限,便可運行
可結合各種Shell控制語句以完成更復雜的操作

Shell腳本應用場景

重複性操作
批量事務處理
自動化運維
服務運行狀態監控
定時任務執行

SHell腳本的作用—命令解釋器

Shell相當於是”翻譯官”,介於系統內核和用戶間,負責解釋命令行。
Shell編程規範與變量

用戶的登錄Shell

登錄後默認使用的shell程序,一般爲/bin/bash
不同shell的內部指令,運行環境等會有所區別
Shell編程規範與變量
編寫腳本代碼
使用vim文本編輯器
每行一條Linux命令,按執行順序依次編寫

[root@localhost ~]# vim first.sh 編寫第一個腳本

Shell編程規範與變量

#!/bin/bash
#this is fiest script
cd /boot
pwd
ls -lh vml

賦予可執行權限

使腳本具有可執行的屬性

[root@localhost ~]# chmod +x first.sh 

執行腳本文件

[root@localhost ~]# ./first.sh
(必須有執行權限,不改變目錄位置)

Shell編程規範與變量

[root@localhost ~]# . first.sh 
(不需要執行權限,但是改變目錄位置)

Shell編程規範與變量

[root@localhost ~]# source first.sh
(不需要執行權限,但是改變目錄位置)

Shell編程規範與變量

[root@localhost ~]# sh first.sh
(無需執行權限也不改變目錄位置)

Shell編程規範與變量

更完善的腳本構成

腳本聲明
註釋信息
可執行語句

#!/bin/bash
#this is fiest script
cd /boot
echo "當前所在路徑"
pwd
echo "以vml開頭的文件信息"
ls -lh vml

Shell編程規範與變量

重定向與管道操作

交互式硬件設備
標準輸入:從該設備接收用戶輸入的數據
標準輸出:通過該設備向用戶輸出數據
標準錯誤:通過該設備報告執行出錯信息
Shell編程規範與變量
重定向操作
Shell編程規範與變量
**管道操作符號”|”
Shell編程規範與變量

awk  縱向識別
-F   分割符 
(以冒號分隔,-F後就跟冒號)
Print 輸出
$1  調用第一個變量
$7  調用第七個變量

shell變量的作用、類型

變量的作用
爲靈活管理Linux系統提供特定參數,有兩層意思
變量名:使用固定的名稱,由系統預設或用戶定義。
變量值:能夠根據用戶設置、系統環境的變化而變化
變量的類型
自定義變量:由用戶自己定義、修改和使用
環境變量:由系統維護,用於設置工作環境
位置變量:通過命令行給腳本程序傳遞參數
預定義變量:Bash中內置的一類變量,不能直接修改

自定義變量

定義一個新的變量
變量名以字母或下劃線開頭,區分大小寫,建議全大寫

變量名=變量值

查看變量的值

echo $變量名

Shell編程規範與變量
賦值時使用引號
雙引號:允許通過$符號引用其他變量值
單引號:禁止引用其他變量值,$視爲普通字符
反撇號(Esc下面的鍵):命令替換,提取命令進行後的輸出結果
Shell編程規範與變量

從鍵盤輸入內容爲變量賦值

read [-p "提示信息"] 變量名

設置變量的作用範圍

格式1:export 變量名
格式1:export 變量名=變量值
(兩種格式可以混和使用)

Shell編程規範與變量
整數變量的運算

expr 變量1 運算符 變量2 [ 運算符 變量3]

常用運算符
(1)加法運算:+
(2)減法運算:-
(3)乘法運算:
(4)除法運算:/
(5)求模(取餘)運算:%
實例演示:計算任意兩個整數的和

#!/bin/bash
read -p "請輸入第一個整數:" num1
read -p "請輸入第二個整數:" num2
#執行加法運算
sum=`expr $num1 + $num2`
echo "求和數爲:$sum"

Shell編程規範與變量

特殊的Shell變量

環境變量
由系統提前創建,用來設置用戶的工作環境
配置文件: /etc/profile、~/.bashprofile
常見的環境變量
PWD 、 PATH、 USER、 HOME、 SHELL
Shell編程規範與變量
位置變量
表示爲$n,n爲1~9之間的數字

#!/bin/bash
echo "第一個位置變量的值:$1" 
echo "第二個位置變量的值:$2" 
sum=`expr $1 + $2`
echo "求和數爲:$sum"

Shell編程規範與變量
預定義變量
$#:命令行中位置變量的個數
$*:所有位置變量的內容
$?:上一條命令執行後返回的狀態,當返回值爲0時代表執行正常,非0只表示執行出錯
(4)$0:當前執行的進程/程序名

#!/bin/bash
echo "第一個位置變量的值:$1" 
echo "第二個位置變量的值:$2" 
sum=`expr $1 + $2`
echo "求和數爲:$sum"
echo "腳本名稱:$0"
echo "詳細數字:$*"
echo "參數的個數:$#"

Shell編程規範與變量

Shell編程規範與變量

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章