• (转)linux基本变量学习:位置变量$0 、$1 shift轮替、本地变量、环境变量、特殊变量


    原文:http://blog.51cto.com/woyaoxuelinux/1863045

    shell: 弱类型编程语言

    强:变量在使用前,必须事先声明,甚至还需要初始化;

    弱:变量用时声明,甚至不区分类型;

    变量赋值:VAR_NAME=VALUE

    bash变量类型:

           环境变量

           本地变量(局部变量)

           位置变量

           特殊变量

          

    本地变量:

    set VARNAME=VALUE: 作用域为整个bash进程; 

    局部变量:

    local VARNAME=VALUE:作用域为当前代码段;

    环境变量:作用域为当前shell进程及其子进程;

    export VARNAME=VALUE

    VARNAME=VALUE

    export VARNAME

           “导出” 

    位置变量:

    $0,$1, $2, ...  $0表示命令本身,$1表示第一个参数,依次类推$3表示第三个参数

    shift n 轮替,n表示数字 把后面第n个参数轮替到第一个参数

    eg: vim shift.sh

      #!/bin/bash

      #

       echo $1

        shift 2

       echo $1

        shift 2

       echo $1

    ./shift.sh 1 2 3 4 5

    [root@xuelinux test]# ./shift.sh 1 2 3 4 5

    1

    3

    5

    特殊变量:

    $?: 上一个命令的执行状态返回值; 

    $#: 参数的个数

    $*: 参数列表

    $@: 参数列表

    程序执行,可能有两类返回值:

           程序执行结果

           程序状态返回代码(0-255)

                  0: 正确执行

                  1-255:错误执行,1,2,127系统预留;

    输出重定向:

    > 输出覆盖重定向

    >> 输出追加重定向

    2> 错误输出覆盖重定向

    2>>错误输出追加重定向

    &> 正确错误输出重定向

    撤消变量:

    unset VARNAME VARNAME是变量名

    查看当shell中变量:

    set VARNAME 不过set可以省略 VARNAME是变量名

    查看当前shell中的环境变量命令如下:

    printenv

    env

    export

    脚本:命令的堆砌,按实际需要,结合命令流程控制机制实现的源程序

     shebang: 魔数

    #!/bin/bash

    # 注释行,不执行

    /dev/null: 软件设备, bit bucket,数据黑洞      

    脚本在执行时会启动一个子shell进程;

           命令行中启动的脚本会继承当前shell环境变量;

           系统自动执行的脚本(非命令行启动)就需要自我定义需要各环境变量;

  • 相关阅读:
    .Net缓存管理框架CacheManager
    .Net Attribute详解(下)
    .Net Attribute详解(上)-Attribute本质以及一个简单示例
    使用Web.Config Transformation配置灵活的配置文件
    Lazy<T>在Entity Framework中的性能优化实践(附源码)
    菜鸟程序员之Asp.net MVC Session过期异常的处理
    Windows下查看端口占用
    MVC数据验证原理及自定义ModelValidatorProvider实现无编译修改验证规则和错误信息
    如何恢复Mysql数据库
    Entity Framework做IN查询
  • 原文地址:https://www.cnblogs.com/liujiacai/p/9007044.html
Copyright © 2020-2023  润新知