zoukankan      html  css  js  c++  java
  • Linux Shell变量

    介绍

    变量是shell脚本中必不可少的组成部分,在脚本中使用变量不需要提前声明。在bash中每一个变量都是字符串,所以在变量赋值时候不管有没有使用引号都是以字符串的形式存储,但是如果值中存在特殊字符就需要用引号将值进行引用, 在bash中可以使用单引号或者双引号。

    环境:centos 6.7

    赋值

    给变量赋值:

    var=value

    特别注意变量和值之间不要存在空格,否则会被认为是等值判断,比如[var = value]

    调用变量只需要在变量前加上$

    输出变量:

    echo $value
    或
    echo ${value}

    例:写一个shell脚本输出今天的日期

    vim assign

    #!/bin/bash
    var=`date +'%Y-%m-%d'`
    echo "today is $var"

    运算

    []、(())

    注意上面的两种是固定的写法,都是用来在shell中做算术运算,并且在这两个操作符前都需要使用$符合,在括号里面变量前可以使用$也可以不使用

    #!/bin/bash
    var1=1
    var2=2
    result1=$[var1+var2]
    result2=$[$result1+1]
    result3=$((result2+1))
    result4=$(($result3+1))
    echo $result1 $result2 $result3 $result4

     

    在shell环境中可以使用let,[],(())进行基本的算术运算。

    let

    let的算术运算包括,let本身也可以进行赋值

    方法1:简单算术运算

    var1=1
    var2=2
    let result=var1+var2

    方法2:自加

    let var2++ 等同于 let var2=var2+1

    方法3:简写

    let var2+=2
    等同于
    let var2=var2+2

    脚本

    #!/bin/bash
    var1=1
    var2=2
    let result=var1+var2
    let var2++
    let var1+=5
    printf "var1=1 var2=2 
    "
    printf  "%-10s %-8s %-6s
    " var1+var2 var2++ var1+=5printf  "%-10s %-8s %-2s 
    " $result $var2 $var1
    let var=5
    echo $var

     注意:上面只是测试了加法运算,对于其他的算术运算都支持,但是只支持整形,对于存在小数的运算不支持。

    高级运算bc

    支持小数运算

    语法
    echo "  " | bc

    如果要将bc运算出的结果作为变量可以这样

    result=`echo " " | bc `
    #!/bin/bash
    echo "0.5*10" | bc
    
    var=5
    result=`echo "$var*0.5" | bc`
    echo $result

     

    总结

    赋值算法还是比较简单,后面慢慢完善

    备注:

        作者:pursuer.chen

        博客:http://www.cnblogs.com/chenmh

    本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

    《欢迎交流讨论》

  • 相关阅读:
    Java硬件同步机制Swap指令模拟+记录型信号量模拟
    算法(第四版)练习 1.1.26 ~ 1.1.31
    C++ 电路布线/最短路径问题
    线性代数笔记
    算法导论(第三版)练习 2.2-1 ~ 2.2-4
    条款45: 弄清C++在幕后为你所写、所调用的函数
    条款42: 明智地使用私有继承
    条款41: 区分继承和模板
    【python】字符遍历
    【python】range的用法
  • 原文地址:https://www.cnblogs.com/chenmh/p/5384176.html
Copyright © 2011-2022 走看看