zoukankan      html  css  js  c++  java
  • 03变量和引用

    03变量和引用

    深入认识变量

    什么是变量

    变量的命名

    变量的类型

    实例:

    1. #! /bin/bash 
    2.  
    3. x=123 
    4. let "x += 1" 
    5. echo "x = $x" 
    6. echo # 输出空行 
    7.  
    8. y=${x/1/abc} 
    9. echo "y = $y" 
    10. declare -i y 
    11. echo "y = $y" 
    12. let "y += 1" # 遇到含有非数值的字符串,字符串转换为整数0 
    13. echo "y = $y" 
    14. echo  
    15.  
    16. z=abc22 
    17. echo "z = $z" 
    18. m=${z/abc/11} 
    19. echo "m = $m" 
    20. let "m += 1" 
    21. echo "m = $m" 
    22. echo 
    23.  
    24. # 空变量或者空串转换为整数都为0 
    25. n="" 
    26. echo "n = $n" 
    27. let "n += 1" 
    28. echo "n = $n" 
    29. echo 
    30.  
    31. echo "p = $p" 
    32. let "p += 1" 
    33. echo "p = $p" 
    34.  
    35.  

    变量的定义

    可以直接使用变量来定义变量,例如:

    1. #! /bin/bash 
    2.  
    3. a=1 
    4. b="hello world" 

    使用declare来声明变量,基本语法:

    1. declare attribute variable 

    常用的属性:
    -p:
    -i:
    -r:只读变量
    -a:数组
    -f:函数
    -x:将变量设置为环境变量,这样随后的脚本和程序都可以使用
    实例:

    1. #! /bin/bash 
    2. x=6/3 
    3. echo "x = $x" 
    4.  
    5. declare -i x 
    6. echo "x = $x" 
    7. x=6/3 
    8. echo "x = $x" 
    9.  
    10. x=hello 
    11. echo "x = $x" 
    12. # bash并不内置对浮点数的支持 
    13. x=3.14 
    14. echo "x = $x" 
    15.  
    16. declare +i x 
    17. x=6/3 
    18. echo "x = $x" 
    19. x=$[6/3
    20. echo "x = $x" 
    21. x=$((6/3)) 
    22. echo "x = $x" 
    23. declare -r x 
    24. echo "x = $x" 
    25. x=5 
    26. echo "x = $x" 
    27.  

    执行结果:

    1. delphi@delphi-vm:~/shell/chapter03$ ./test.sh  
    2. 6/3 
    3. x = 6/3 
    4. x = 2 
    5. x = 0 
    6. ./test.sh: 行 13: 3.14: 语法错误: 无效的算术运算符 (错误符号是 ".14") 
    7. x = 0 
    8. x = 6/3 
    9. x = 2 
    10. x = 2 
    11. ./test.sh: 行 24: x: 只读变量 
    12. x = 2 
    13.  

    变量和引号

    • 单引号

    • 双引号

    • 反引号

    例如:

    1. #! /bin/bash 
    2. echo "The current directory is `pwd`" 

    变量的作用域

    • 全局变量

    • 局部变量
      例子:

    1. #! /bin/bash 
    2.  
    3. func() 

    4. echo "$v1" 
    5. v1=200 

    6. v1=100 
    7. func 
    8. echo "$v1" 

    执行结果:
    100
    200

    注意: 函数内部定义的变量也是全局变量
    全局变量和局部变量的区别:

    1. #! /bin/bash 
    2.  
    3. func() 

    4. echo "$v1" 
    5. lacal v1=200 
    6. echo "$v1" 

    7. v1=100 
    8. func 
    9. echo "$v1" 

    执行结果:
    100
    200
    100

    • 系统变量
      如下:
      enter description here

    • 环境变量
      运用命令:set | more 查看所有的环境变量,环境变量一般用大写表示

    变量的赋值和清空

    变量赋值

    赋值号左右不能够接空格,否则shell会将其视为命令。

    引用变量的值

    建议使用大括号将变量名进行明确界定,不用简写。
    例如:echo "${v4}abc"

    清除变量

    unset 变量 语句

    引用和替换

    引用

    单引号为全引用,如:

    1. #! /bin/bash 
    2.  
    3. v1="hello" 
    4. echo 'world,$v1' 

    输出: world,$v1

    命令替换

    有两种语法:
    例如:

    1. #! /bin/bash 
    2.  
    3. v1='pwd' 
    4. echo 'The current directory is $v1' 
    1. #! /bin/bash 
    2.  
    3. v1=$(pwd
    4. echo 'The current directory is $v1' 

    转义

    如:echo $SHELL
    结果:$SHELL

  • 相关阅读:
    libhdfs 写新的c程序编译问题
    CDH4源码 eclipse导入问题
    安装CDH4遇到的问题
    [学习资料]Java多线程编程
    [properJavaRDP]在网页中实现远程连接
    【原创】Eclipse实现图形化界面插件vs4e
    【原创】源码角度分析Android的消息机制系列(四)——MessageQueue的工作原理
    【原创】源码角度分析Android的消息机制系列(六)——Handler的工作原理
    【原创】源码角度分析Android的消息机制系列(三)——ThreadLocal的工作原理
    【原创】源码角度分析Android的消息机制系列(五)——Looper的工作原理
  • 原文地址:https://www.cnblogs.com/yanyun888/p/6204199.html
Copyright © 2011-2022 走看看