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

      

  • 相关阅读:
    hdu2328 Corporate Identity
    hdu1238 Substrings
    hdu4300 Clairewd’s message
    hdu3336 Count the string
    hdu2597 Simpsons’ Hidden Talents
    poj3080 Blue Jeans
    poj2752 Seek the Name, Seek the Fame
    poj2406 Power Strings
    hust1010 The Minimum Length
    hdu1358 Period
  • 原文地址:https://www.cnblogs.com/hmm1995/p/10418361.html
Copyright © 2011-2022 走看看