Posted on 2008-10-18 21:40
sailor 阅读(471)
评论(0) 编辑 收藏 所属分类:
linux
二、Shell基本语法
shell程序采用$var的形式来引用名为var的变量的值。
Shell有以下几种基本类型的变量:
shell定义的环境变量;
用户自定义变量;
位置参数;
预定义变量;
参数置换变量;
1、shell定义的环境变量
shell在开始执行时就已经定义了一些和系统工作环境相关的变量,用户还可以重新定义这些变量。
HOME 用于保存注册目录的完全路径名;
PATH 用于保存用冒号分割的目录路径名;
TERM 终端类型;
UID 当前用户的识别字,它取的是由数位构成的字符串;
PWD 当前绝对路径
2、用户自定义变量
语法:变量名=变量值
在定义变量时,变量名前不需要加$,在引用变量时则在变量名前加$;
在给变量赋值时,等号两边一定不能留有空格,若变量本身包含有空格,则整个字符串加“”;
变量名用大写字母表示,变量名由字母和下划线组策划那个,变量名第一个字符不能是数字。
$SUN=sun
$echo ${SUN}day
在应用shell变量时,可以在变量名字两边$后面加上{},以便更清楚地显示给shell。
${variable:-value}
variable是一个变量值,value是变量替换使用的默认值。
第一种赋值:默认赋值
1$echo Hello $UNAME
2
结果显示:Hello
1$echo Hello ${UNAME: -Sailor}
结果显示:Hello Sailor
第二种赋值:不但使用默认值进行替换,而且将默认值赋值给该变量
${var:=value}
echo hello ${uname:=sailor}
显示结果:hello sailor
echo $uname
显示结果:sailor
第三种变量赋值:只有当变量已赋值时才用制定替换形式:
${var:+value}
$ERROPT=a
$echo ${ERROPT:+'Error tracking is active'}
显示结果:Error tracking is active
还可以用错误检查的条件进行变量替换
${var:?message}
3、位置参数
$# 位置参数的数量
$* 位置参数的内容
$? 命令执行后返回的状态
$! 后台运行的最后一个进程号
$0 当前执行的进程名
$$ 当前进程的进程号
4、参数置换的变量
变量=${参数-word}:如果设置了参数,则用参数的值置换变量的值,否则用word置换。
变量=${参数=word}:如果设置了参数,则用参数的值置换变量的值,否则把变量置换成word,然后再用word替换参数的值。
变量=${参数?word}:如果设置了参数,则用参数的值置换变量的值,否则就显示word并从shell中退出,如果省略了word,就显示标准信息。
变量=${参数+word}:如果设置了参数,就用word置换变量,否则不进行置换。
5、位置参数
位置参数是一种在调用shell程序的命令行中按照各自的位置决定的变量,是在程序名之后输入的参数。位置参数之间用空格分隔,shell取第一个位置参数替换程序文件中的$1,取第二个替换S2,然后依次类推。