$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}'`”
回顾:
脚本的结构与运行
变量的类型及用法
环境变量
本地变量
参数变量
特殊变量
变量赋值时的引用方法