shell 变量

简介 : shell 变量? 用一个固定的字符串去表示不固定的内容,便于修改。

1. 自定义变量

学习要点

            定义变量: 变量名=变量值
            引用变量: $变量名  或 ${变量名}
            查看变量: echo $变量名;    "set"可以查看所有变量(包括自定义变量和环境变量)
            取消变量: unset 变量名

定义变量

[root@localhost ~]# name="xulei 666"

变量调用

#定义变量name

        [root@localhost ~]# name="xulei 666"

#输出变量name的值

        [root@localhost ~]# echo $name

重复定义变量

#定义变量aa的值是123

        [root@localhost ~]# aa=123

#重复定义变量aa的值是源aa的值加上456

        [root@localhost ~]# aa="$aa"456

输出123456

变量查看

[root@localhost ~]# set 

变量删除

[root@localhost ~]# unset  name

交互定义变量


    read 从键盘读入变量值
        赋值方式
            read 变量名
        示例
            read -p "请输入您测试的IP地址:" ip

ping -c1 $ip   &>/dev/null  && echo   " $ip up" || echo   "$ip
 down"
    注意事项:3种引号
        定义或引用变量时注意事项:
        " " 弱引用
        ' ' 强引用
        ` ` 优先执行
            双引号1
                [root@localhost ~]# schoo=1000 phone 
                    错误示范,shell把空格识别做命令分隔符。
                bash: phone: 未找到命令
                [root@localhost ~]# schoo="1000 phone" 
                    正确示范,变量值中的空格,被转义为一个普通符号
                [root@localhost ~]# echo $schoo
                1000 phone
                    执行成功。
            双引号2
                [root@localhost ~]# schoo=$schoo is good
                    错误示范,已有变量的基础上,再追加内容。
                bash: is: 未找到命令
                    没有加引号,被识别为两条命令
                [root@localhost ~]# schoo="$schoo is good"
                    正确示范,加了双引号。组成了整体,空格失去含义。
                [root@localhost ~]# echo $schoo
                1000 phone is good
                    成功
            单引号
                [root@localhost ~]# schoo='$schoo 666'
                    单引号,转义一切符号
                [root@localhost ~]# echo $schoo
                $schoo 666
                    $也被转义了。一切都被转义了。
            反引号
                [root@localhost ~]# schoo=`date`
                    反引号是优先执行。先执行date的命令,再执行定义变量。
                [root@localhost ~]# echo $schoo
                2020年 05月 06日 星期三 14:57:13 CST
                    所以看到变量的结果,是时间

注意
    变量名和等号之间不能有空格,这可能和你熟悉的所有编程语言都不一样。同时,变量名的命名须遵循如下规则:
        命名只能使用英文字母,数字和下划线,首个字符不能以数字开头。
        中间不能有空格,可以使用下划线(_)。
        不能使用标点符号。
        不能使用bash里的关键字(可用help命令查看保留关键字)。
        起变量名,请使用五个字母以上。

2. 整数运算

方法一:expr

语法
        expr       1       +        2
        expr      $num1     +       $num2
        +加
        -减
        \*乘(*是任意字符,使用\ 转义一下。)
        /除
        %取余

3. 小数运算(了解)

        echo "2*4" |bc
        echo "2^4" |bc
        echo "scale=2;6/4" |bc

4. 环境变量(了解)

定义环境变量:

        直接声明:方法一 export       back_dir2=/home/backup 

        转换声明:方法二 export      back_dir1 将自定义变量转换成环境变量

5. 位置变量和预定义变量(了解)

命令     参数1 参数2 参数3 ....9以后特殊定义
        $0      $1 $2 $3 $4 $5 $6 $7 $8 $9  ...

预定义变量

        $0 脚本名/程序名
         $* 所有的参数
        $# 参数的个数
        $? 上一个程序的返回值(0是成功,非零失败)
        $$ 程序的PID

总结
    1.位置变量就是$1,$2,$3,$4
    2.位置变量预先已经被定义过了。
    3.用户使用时,必须携带参数。
    4.位置变量不是程序设计的唯一方法。比如read也可以。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值