Linux c==读书笔记第10章shell编程(3)

3.2 shell程序的变量和参数

shell的功能:说明和使用变量
【对shell来说,所有变量的取值都是一个字符串,采用$var的形式来引用var的变量的值】

  • 3.2.1 shell定义的环境变量

    环境变量:和系统的工作环境有关的变量,可被用户重新定义
    HOME:保存注册目录的完全路径名
    PATH:保存用冒号分隔的目录路径名
    (shell按PATH变量中给出的顺序搜索这些目录,找到的第一个与命令名称一致的可执行文件将被执行)
    TERM:终端的类型
    UID:当前用户的标识符,取值是由数字构成的字符串
    PWD:当前工作目录的绝对路径名,该变量的取值随cd命令的使用而变化
    PS1:主提示符,在特权用户下,默认的主提示符是#,在普通用户下, 默认的主提示符是$
    PS2:在shell接收用户命令的过程中,若用户在输入行的末尾输入\然后回车,或者用户按回车时shell判断出用户的命令没有结束,显示这个辅助提示符,提示用户继续输入命令的其余部分,默认的辅助提示符是>

  • 3.2.2 用户定义的变量

变量名=变量值




//注意:
//1、在定义变量时,变量名前不能加$
//2、在给变量赋值时,等号两边的能留空格
//3、若变量本身包含了空格,则整个字符串都要用双引号括起来
//4、为了区别变量名和命令名,变量名最好用大写字母来表示
readly 变量名


//表示这个变量只读
export 变量名



//一般情况下,局部变量只能在当前使用。
//而这个命令将此局部变量交给别的命令使用
export 变量名=变量值



//在赋值时使用export命令
//获得和上面同样的效果
  • 3.2.3 位置参数
    定义:调用shell程序的命令行时所在的位置,决定的变量
    作用于:程序名之后输入
    格式:用空格分隔
    作用:用来替换程序文件中的某个东西
    【具体:第一个位置参数替换$1,第二个替换$2,依次类推】

    注意:$0是一个特殊的变量,其内容包括此shell程序的文件名,所以$0不是一个位置参数。在显示当前所有的位置参数时是不包括$0的。

  • 3.2.4 预定义变量
    定义:类似于环境变量,在shell一开始就会定义。且不能被重定义,只能按照shell预先定义好的来。

    常见的shell预定于变量有:

$#:位置参数的数量
$*:所有位置参数的内容

$?:命令执行后返回的状态
//作用:检查上一个命令执行是否正确,正确为0,错误为非0

$$:当前进程的进程号
//作用:用作临时变量的名字,保证临时文件不重复

$!:后台运行的最后一个进程号
$0:当前执行的进程名
  • 3.2.5 参数置换的变量
    作用:根据不同的条件来给变量赋不同的值
    可参数置换的变量的种类:4种
    变量参数置换的方式:与某个位置参数相联系,根据指定的位置参数是否已经设置类决定变量的取值
1)变量 = ${参数 - word}
    //若设置了参数,则用参数的值置换变量的值,否则用word置换
    //即这种变量的值等于某一参数的值,若该参数没有设置,该变量等于word的值2)变量 = ${参数 = word}
    //若设置了参数,则用参数的值置换变量的值,否则把变量设置成word,然后用word替换参数的值
    //注意,位置参数不能用这种方式,因为在shell程序中不能为位置参数赋值3)变量 = ${参数 ? word}
    //若设置了参数,则用参数的值置换变量的值,否则显示word,并从shell中退出,若省略了word,则显示标准信息
    //这种变量要求一定等于某一个参数的值,若该参数没有设置,就显示一个信息,然后退出,常用于出错指示。4)变量 = ${参数 + word}
    //若设置了参数,则用word置换变量,否则不进行置换

以上四种形式中的参数既可以是位置参数(大部分情况),也可以是另一种变量

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值