$0 |
$1 |
$2 |
$3 |
$4 |
$5 |
$6 |
$7 |
$8 |
$9 |
腳本名字 |
A |
B |
C |
D |
E |
F |
G |
H |
I |
$0=當前腳本名稱
向腳本中使用位置參數
向系統命令傳遞參數
$# 傳遞到腳本的參數列表個數
$* ($@) 以一個單字符串顯示所有向腳本傳遞的參數
$$ 腳本運行的當前進程ID號
$? 顯示最后命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。
引用的必要性
變量操作中,腳本執行變量賦值時最容易犯的一個錯誤就是引用錯誤
例:echo abc *
echo abc ‘*'
echo Hit the star button to exit *
引用的方式
雙引號(“) (需要排除以下幾個)
使用雙引號可以引用除$、`、\、字符外的任意字符或字符串
單引號(‘) (比較霸道,任何都可以轉成字符)
與雙引號類似,不同的是shell會忽略任何引用值。
換句話說,如果屏蔽了其特殊含義,會將引號里的所有字符,都作為一個字符串。
反引號(`) (將括號內的當作命令來執行)
用于設置系統命令的輸出到變量。
shell將反引號中的內容作為一個系統命令,并執行其內容
反斜杠(\)
如果一個字符有特殊含義,反斜線防止shell誤解其含義,即屏蔽其特殊含義。
下述字符包含有特殊意義: * + ^ $ ` ” | ?
腳本實例
#!/bin/bash
#This is the first script
echo “Hello,World!”
執行:
chmod u+x Hello.sh
./Hello.sh
#!/bin/bash
echo $1
echo $2
echo $3
echo $4
echo $5
echo $6
echo $7
echo $8
echo $9
echo $10
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}'`”
回顧:
腳本的結構與運行
變量的類型及用法
環境變量
本地變量
參數變量
特殊變量
變量賦值時的引用方法