• shell编程(一)之变量


    变量:命名的内存空间

    bash的变量种类:
        根据变量的生效范围等标准
            本地变量: 生效范围为当前shell进程;对当前shell之外的其他shell进程,包括当前shell的子shell进程均无效
            环境变量: 生效范围为当前shell进程及其子进程
            局部变量: 生效范围为当前shell进程中某代码片段(通常指函数)
            位置变量: $1,$2...来表示,用于让脚本在脚本代码中调用通过命令行传输给它的参数
            特殊变量: $?、$0, $*, $@, $#
    
    变量命名法则:
            1. 不能使用程序中的保留字:if,for
            2. 只能使用数字、字母及下划线,且不能以数字开头
            3. 见名知意
    
    只读变量:
        readly name
        declare -r name
    
    本地变量:
        变量赋值:name='value'
            可以使用引用:
                value: 
                    1. 可以是直接字串,name="username"
                    2. 变量引用: name="$username"
                    3.命令引用: name=`COMMAND`,name=$(COMMAND)
        变量引用:${name}, $name
            "": 弱引用,其中的变量引用会被替换为变量值
            '': 强引用,其中的变量引用不会被替换为变量值,而保持原字符串
        显示已定义的所有变量
            set
        销毁变量:unset name
    
    环境变量: 
        变量声明、赋值
            export name=VALUE
            declare -x name=VALUE
        变量引用: $name, ${name}
        显示所有的环境变量
            export, env, printenv
        销毁:
            unset name
        bash有很多内建的环境变量: PATH, SHELL,UID,HISTORY,HOME,PWD,OLD,HISTFILE,PS1
    
    位置变量
        在脚本代码中调用通过命令行传递给脚本的参数
            $1,$2,... : 对应调用第1个、第二个等参数
                shift [n]: 剔除某个变量
    
    特殊变量
        $?: 上一条命令的执行结果
        $0:命令本身
        
        $*: 传递给脚本的所有参数
        $@: 传递给脚本的所有参数
        $#: 传递给脚本的参数的个数
    

    变量作用域:
    本地变量:当前shell进程:为了执行脚本会启动专用的shell进程,因此本地变量的作用域是当前shell脚本程序
    局部变量:函数的生命周期;函数结束时变量被自动销毁
    在函数中定义局部变量的方法:加local关键字
    lodal NAME=VALUE

  • 相关阅读:
    总结的反爬虫手段(持续更新)
    爬虫类编程笔记导航
    技术开发流程小公司
    敏捷开发学习笔记(一)
    .NET Framework各版本比较
    linux shell 之 cut
    Hive insert overwrite 出现错误解决方法
    hive join
    linux shell 之 grep
    hive实现not in
  • 原文地址:https://www.cnblogs.com/ckh2014/p/10764373.html
Copyright © 2020-2023  润新知