城市猎人

在一网情深的日子里,谁能说得清是苦是甜,只知道确定了就义无反顾
posts - 1, comments - 7, trackbacks - 0, articles - 89

Shell编程基础(二)

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,然后依次类推。

只有注册用户登录后才能发表评论。


网站导航: