變量
獲取本機主機名
#hostname
獲取本系統(tǒng)版本號
#uname -r
獲取cpu類型
獲取cpu的工作頻率
cat /proc/cpuinfo
獲取內(nèi)存使用情況
#free -m
獲取硬盤使用情況
#df
變量類型及變量操作
本地變量(一般所指)
本地變量只存在用戶當前shell中,當用戶退出當前shell或開器一個新的shell,所設置的變量將會不存在
設置變量
#變量名=變量值
顯示變量
#echo ${變量名}
假設a=1 顯示則 echo ${a}
環(huán)境變量(用的非常少)
環(huán)境變量用于所有用戶進程(經(jīng)常稱為子進程)。登錄進程稱為父進程。Shell中執(zhí)行的用戶進程均稱為子進程。不像本地變量,環(huán)境變量可用于所有子進程,這包括編輯器、腳本和應用
環(huán)境變量在用戶注銷時會消失,因此最好在$HOME/.bash_profile(/etc/profile)文件里直接定義
位置變量(跟腳本和函數(shù)有很大的關系)
位置變量表示$0,$1… …$9 (只有9個)
$0
$1
$2
$3
$4
$5
$6
$7
$8
$9
腳本名字
A
B
C
D
E
F
G
H
I
$0=當前腳本名稱
向腳本中使用位置參數(shù)
向系統(tǒng)命令傳遞參數(shù)
特殊變量
$# 傳遞到腳本的參數(shù)列表個數(shù)
$* ($@) 以一個單字符串顯示所有向腳本傳遞的參數(shù)
$$ 腳本運行的當前進程ID號
$? 顯示最后命令的退出狀態(tài)。0表示沒有錯誤,其他任何值表明有錯誤。
引用的必要性
變量操作中,腳本執(zhí)行變量賦值時最容易犯的一個錯誤就是引用錯誤
例:echo abc *
echo abc ‘*'
echo Hit the star button to exit *
引用的方式
雙引號(“) (需要排除以下幾個)
使用雙引號可以引用除$、`、\、字符外的任意字符或字符串
單引號(‘) (比較霸道,任何都可以轉成字符)
與雙引號類似,不同的是shell會忽略任何引用值。
換句話說,如果屏蔽了其特殊含義,會將引號里的所有字符,都作為一個字符串。
反引號(`) (將括號內(nèi)的當作命令來執(zhí)行)
用于設置系統(tǒng)命令的輸出到變量。
shell將反引號中的內(nèi)容作為一個系統(tǒng)命令,并執(zhí)行其內(nèi)容
反斜杠(\)
如果一個字符有特殊含義,反斜線防止shell誤解其含義,即屏蔽其特殊含義。
下述字符包含有特殊意義:& * + ^ $ ` ” | ?
腳本實例
Hello.sh
#!/bin/bash
#This is the first script
echo “Hello,World!”
執(zhí)行:
chmod u+x Hello.sh
./Hello.sh
var.sh
#!/bin/bash
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8
echo $9
echo $10
#!/bin/bash
echo –e “hostname\t `hostname`”
echo –e “OScore\t `uname -r`”
echo –e “CPUInfo\t `grep “model name” /proc/cpuinfo|awk –F: ‘{print $2}'`”
ehco –e “CPUMHz\t `grep “MHz” /proc/cpuinfo | awk –F: ‘{print $2}'`”
echo –e “MEMTotal\t `free | awk ‘$1=”Mem:”{print $2}'`”
echo –e “DiskInfo\t `df | grep dev |awk ‘{print $1 $2}'`”
回顧:
腳本的結構與運行
變量的類型及用法
環(huán)境變量
本地變量
參數(shù)變量
特殊變量
變量賦值時的引用方法