• shell运算符


    • declare声明变量类型

    declare [+/-] [option] variable name

    options:

      -  给变量设定类型属性

      +  取消变量的类型属性

      -a  将变量声明为数组型

      -i  将变量声明为整数型 ( integer )

      -x  将变量声明为环境变量

      -r  将变量声明为只读变量

      -p  显示指定变量的被声明的类型

    1 ucm@ucm-Aspire-TC-606:~$ a=11
    2 ucm@ucm-Aspire-TC-606:~$ b=22
    3 ucm@ucm-Aspire-TC-606:~$ declare -i c=$a+$b
    4 ucm@ucm-Aspire-TC-606:~$ echo $c
    5 33
    6 ucm@ucm-Aspire-TC-606:~$ declare -p c
    7 declare -i c="33"
    8 ucm@ucm-Aspire-TC-606:~$ 
    •  声明数组变量

    #定义数组  查看数组

    1 ucm@ucm-Aspire-TC-606:~$ movie[0]=zp
    2 ucm@ucm-Aspire-TC-606:~$ movie[1]=tp
    3 ucm@ucm-Aspire-TC-606:~$ declare -a movie[2]=love
    4 ucm@ucm-Aspire-TC-606:~$ echo ${movie}
    5 zp
    6 ucm@ucm-Aspire-TC-606:~$ echo ${movie[2]}
    7 love
    8 ucm@ucm-Aspire-TC-606:~$ echo ${movie[*]}
    9 zp tp love
    • 声明环境变量

    declare -x test=123

    #和export作用相似,export其实是就是调用的declare -x声明的环境变量

    • 声明变量只读属性

    declare -r test

    #给test赋予只读属性,但是请注意只读属性会让变量不能修改/删除,甚至不能取消只读属性

     1 ucm@ucm-Aspire-TC-606:~$ declare -p test
     2 declare -x test="123"
     3 ucm@ucm-Aspire-TC-606:~$ declare -r test
     4 ucm@ucm-Aspire-TC-606:~$ declare -p test
     5 declare -rx test="123"
     6 ucm@ucm-Aspire-TC-606:~$ test=789
     7 bash: test: 只读变量
     8 ucm@ucm-Aspire-TC-606:~$ unset test
     9 bash: unset: test: 无法取消设定: 只读 variable
    10 ucm@ucm-Aspire-TC-606:~$ declare +r test
    11 bash: declare: test: 只读变量
    12 ucm@ucm-Aspire-TC-606:~$ declare -p test
    13 declare -rx test="123"
    14 ucm@ucm-Aspire-TC-606:~$ 
    • 查询变量的属性

    declare -p

    #查询所有变量的属性

    declare -p 变量名

    #查询制定变量的属性


    • 数值运算

    方法一  declare -i 

    方法二  expr或let数值运算工具  变量的+号左右必须要有空格

    1 ucm@ucm-Aspire-TC-606:~$ a=44
    2 ucm@ucm-Aspire-TC-606:~$ b=55
    3 ucm@ucm-Aspire-TC-606:~$ c=$(expr $a + $b)
    4 ucm@ucm-Aspire-TC-606:~$ echo $c
    5 99
    6 ucm@ucm-Aspire-TC-606:~$ c=$(expr $a+$b)
    7 ucm@ucm-Aspire-TC-606:~$ echo $c
    8 44+55
    9 ucm@ucm-Aspire-TC-606:~$ 

    方法三  "$((运算式))" 或 "$[运算式]"  推荐使用"$((运算式))"

    1 ucm@ucm-Aspire-TC-606:~$ d=$(($a+$b))
    2 ucm@ucm-Aspire-TC-606:~$ e=$[$a+$b]
    3 ucm@ucm-Aspire-TC-606:~$ echo $d
    4 99
    5 ucm@ucm-Aspire-TC-606:~$ echo $e
    6 99
    7 ucm@ucm-Aspire-TC-606:~$ 

      逻辑运算

    1 ucm@ucm-Aspire-TC-606:~$ f=$((0&&1))
    2 ucm@ucm-Aspire-TC-606:~$ echo $f
    3 0
    4 ucm@ucm-Aspire-TC-606:~$ g=$((0||1))
    5 ucm@ucm-Aspire-TC-606:~$ echo $g
    6 1
    7 ucm@ucm-Aspire-TC-606:~$ 


        • 变量测试  shell中独有  在脚本优化中使用
        • 特点:代码精简,逻辑不好理解

    举个栗子:

  • 相关阅读:
    18天,也能让ERP步入新世界
    VB.NET显示Internet上的图片
    首页增强外挂 vBulltein 3.5.x/3.6.x
    简繁互相切换的字库(比较全)
    delphi 使用者的一个好工具
    sql语句的一些参考
    错误2203,安装中的用户权限问题
    音响的灵魂! 世界顶级扬声器品牌介绍
    Pocket PC程序安装
    清理数据库挂马代码
  • 原文地址:https://www.cnblogs.com/jxdong116/p/6196120.html
Copyright © 2020-2023  润新知