zoukankan      html  css  js  c++  java
  • Shell基础:变量类型 & 运算符

    Shell变量

    Shell支持三种类型的变量

    • 用户自定义变量:用户自定义的变量,变量名以英文字母或下划线开头,区分大小写。
    • 位置变量:根据位置传递参数给脚本的变量,默认支持9个位置变量 $1,$2,$3...$9
    • 预定义变量: 预定义的特殊变量,只能使用,不能修改

    用户自定义变量

    #定义变量:变量名=变量值, 可以使用"常量/其他变量/命令执行结果"赋值
    var1='test var'
    var2="test variable $var1"
    var3=`date`
    
    #单引号中将$就当作$, 不识别$为特殊符号,不能引用起他变量
    echo 'the price is $100'
    
    #双引号中可以通过$来引用变量,但无法解析转义符号,要解析转义符和字体格式需要在echo命令前加-e 参数
    echo "test /n test" 
    echo -e "test /n test" 
    
    #`` 反引号可以运行完其中的脚本命令然后赋值给相应的变量,如下执行结果会打印出123.sql的结果和当前日期
    str=`cat 123.sql`
    strdate=`date`
    echo "$str $date`
    
    
    #使用变量:$变量名
    echo "$var $var1"
    
    #变量后直接连接字符串需要用{}隔开使得变量可识别
    echo "测试变量${var}test"
    
    # 清除变量
    unset var1
    

    位置变量

    新建根据参数执行数据库命令脚本

    #!/bin/bash
    #mysql.sh
    
    conn="/usr/local/mysql/bin/mysql -uroot -p123"
    
    case $1 in
       select)
            sql="select * from test.user"
            ;;
       delete)
           sql="delete from test.user where id =$2"
           ;;
       insert)
          sql="insert into test.user(uname,psd) values('$2','$3')"
          ;;
       update)
         sql="update test.user set uname='$3', psd='$4' where id='$2'
         ;;
    esac
    
    $conn -e "$sql"
    

    运行脚本,以空格为分隔符输入不同个数的参数

    #显示test数据库下user表的所有数据
    ./mysql.sh select
    #删除指定id的用户
    ./mysql.sh delete 4
    #插入新用户
    ./mysql.sh insert newuser newpsd
    #更新id=2用户属性
    ./mysqlsh update 2 newuser2 newpsd2

    预定义变量  

    Shell脚本支持四种形式的预定义变量:

    • $#: 所有位置参数的个数
    • $*: 所有位置参数的内容
    • $0: 当前执行的脚本名(程序或者是进程名)
    • $?: 上一条命令执行的状态,为0代表执行成功,为其他数字(eg:127...)代表执行失败
    !/bin/bash
    #test pre-defined bash variable
    echo "当前脚本的位置参数有${#}个"
    echo "当前正在执行的脚本名称是: $0"
    
    if[ [ $? == 0 ] ];then
     echo "上条命令执行成功"
    else
      echo  "上条命令执行失败"
    fi
    
    for i in $*; do
     echo "位置变量为 $i"
    done

    运算符

    Shell是脚本语言,变量没有区分类型,程序在实际运行的时候根据上下文做类型判断,默认的类型是String,如果需要把变量看作Int类型来进行加减乘除运算,需要采用特殊语法。

    • $((变量1运算符1变量2运算符2变量3)) : 此种方式用的较多, eg: $((2+3+4)); $((2*3))
    • expr 变量1 运算符 变量2 运算符 变量3 :变量和运算符之间一定要用空格隔开,此种方法比较少用, 并且乘法要用转移*, eg: expr 2 + 3 + 4; expr 2 * 3

    Shell常用运算符

    • /
    • %
  • 相关阅读:
    Android 一步步实现TCP客户端
    Docker 到底是什么?
    Java中的包机制
    一张图理解github
    Git 提交代码流程理解
    STM32+OV7670(带FIFO)+上位机
    | + logger
    使用 TCP 实现 HTTP
    高阶函数与函数的柯里化
    Python装饰器
  • 原文地址:https://www.cnblogs.com/vivian-test/p/5071491.html
Copyright © 2011-2022 走看看