zoukankan      html  css  js  c++  java
  • shell的变量以及常见符号

    shell的变量以及常见符号

    常见变量

    不同于其它语言需要先声明变量,shell的变量直接使用

    eg:      a=15     

     调用变量的话 $a 或者 ${a}

    $? #判断上一条命令执行的是否成功 0成功 返回其他 错误 

    写一个脚本做演示

    执行

     

    $0 #返回脚本的文件名称  

    $1-$9 #返回对应的参数值   

    $* #返回所有的参数值是什么 

    $# #返回参数的个数和 

     

     

     

    常见的几个符号

    > #会覆盖原有的内容

    ^c是结束符号

    >> #不会覆盖原有的内容

    ; #执行多条命令

    不加;报错

       

    | #管道符

    && #前面的命令执行成功,后面的才可以执行

    || #前面的命令执行失败,后面的才可以执行  

    "" #会输出变量值

    '' #输出本身

      

     

    `` #输出命令结果 eg:a=`date`;echo $a   (反撇号)

    2>/dev/null #错误输出到无底洞(垃圾桶)
    1>/dev/null #正确输出到无底洞

     

    秒变计算器的运算符

    整数:

    加:(加号两边一定要加空格 否则是表达式)

    expr 12 + 6                     expr $a + $b

    echo $[12 + 6]                 echo $[a + b]

    echo $((12 + 6))             echo $((a + b))

    减:

    expr 12 - 6                    expr $a - $b

    echo $[12 - 6]               echo $[a - b]

    echo $((12 - 6))            echo $((a - b))

    乘:

    expr 12 * 6                   expr $a * $b

    echo $[12 * 6]               echo $[a * b]

    echo $((12 * 6))            echo $((a * b))

    除:

    expr 12 / 6                   expr $a / $b

    echo $((12 / 6))           echo $((a / b))

    echo $[12 / 6]              echo $[a / b]

    求余:

    expr 12 % 6                  expr $a % $b

    echo $((12 % 6))          echo $((a % b))

    echo $[12 % 6]              echo $[a % b]

    小数:

    上述方式对小数无效

    内置的  ‘’bc计算器”  计算

    法一:

    法二:

    保留小数:

    保留多少位小数可以通过scale
    但是scale只对除法,取余数,乘幂 有效,对加减没有效(用/1变成除法)。

    echo "scale=2;(0.2+0.3)/1" | bc #计算出0.2+0.3的和并保留俩位小数(整数位为0,此时bc计算器会省略掉个位数的0)
    echo "scale=2;(1.2+1.3)/1" | bc #计算出1.2+1.3的和并保留俩位小数

    常见的条件判断

    语法:

    [ 判断表达式 ]

    文件(夹)或者路径: 
      -e 目标是否存在(exist)
      -d 是否为路径(directory)
      -f 是否为文件(file)

      [ -e foer.sh ] || touch foer.sh   #判断当前目录下是否有foer.sh这个文件,假如没有就创建出foer.sh文件

    权限:
     -r 是否有读取权限(read)
     -w 是否有写入权限(write)
     -x 是否有执行权限(excute)

      [ -x 123.txt ] && echo '有执行权限'   

    整数值(int型(必须 )):
    -eq 等于(equal)
    -ne 不等于(not equal)
    -gt 大于(greater than)
    -lt 小于(lesser than)
    -ge 大于或者等于(greater or equal)
    -le 小于或者等于(lesser or equal)

    注意:不能用><=

    小数(浮点型):

    利用bc计算器  特性

    [ `echo '1.2 < 1.3' | bc` -eq 1 ] && echo '小于'

     `echo '1.2 < 1.3' | bc   返回1   

     `echo '1.2 < 1.3' | bc` -eq 1     等于1 成立  

     && echo '小于'   返回小于

      

    字符串:
    = 相等
    != 不相等

    [ 'kkkkk' != 'kkkk' ] && echo '不等于'  

    shell脚本实例

    实例1:

     

    放入crt跑

    追加符号

     

    粘贴

    执行并传参

    运行错误!

     并未打印出    12不等于13

      因为没有用双引号  

      使用vi  pandun.sh 修改

       

     实例2: 

      vi pandun.sh

      

  • 相关阅读:
    gym101350 c h m
    Gym
    poj 1511 Invitation Cards(最短路中等题)
    POJ 1062 昂贵的聘礼(最短路中等题)
    POJ 1125 Stockbroker Grapevine(最短路基础题)
    【Linux】buffer cache free 理解
    python 绘图 工具
    【Linux】时间跟时区的校正
    python conda、pip区别,python 下 faiss 安装
    celery-demo
  • 原文地址:https://www.cnblogs.com/hmm1995/p/10418361.html
Copyright © 2011-2022 走看看