zoukankan      html  css  js  c++  java
  • Linux的shell变量

    bash变量类型:
    环境变量
    本地变量(局部变量)
    位置变量
    特殊变量

    本地变量:
    set VARNAME=VALUE: 作用域为整个bash进程;


    局部变量:
    local VARNAME=VALUE:作用域为当前代码段;


    环境变量:作用域为当前shell进程及其子进程;
    export VARNAME=VALUE
    VARNAME=VALUE
    export VARNAME
    “导出”


    位置变量:
    $1, $2, ...


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


    程序执行,可能有两类返回值:
    程序执行结果
    程序状态返回代码(0-255)
    0: 正确执行
    1-255:错误执行,1,2,127系统预留;

    输出重定向:
    >
    >>
    2>
    2>>
    &>


    撤消变量:
    unset VARNAME


    查看当shell中变量:
    set


    查看当前shell中的环境变量:
    printenv
    env

    export


    shell中如何进行算术运算:
    A=3
    B=6
    1、let 算术运算表达式
    let C=$A+$B
    2、$[算术运算表达式]
    C=$[$A+$B]
    3、$((算术运算表达式))
    C=$(($A+$B))
    4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用
    C=`expr $A + $B`


    条件判断,控制结构:
    单分支if语句

    if 判断条件; then
      statement1
      statement2
      ...
    fi


    双分支的if语句:
    if 判断条件; then
    statement1
    statement2
    ...
    else
    statement3
    statement4
    ...
    fi


    多分支的if语句:
    if 判断条件1; then
      statement1
      ...
    elif 判断条件2; then
      statement2
      ...
    elif 判断条件3; then
      statement3
      ...
    else
      statement4
      ...
    fi


    测试方法:
    [ expression ]
    [[ expression ]]
    test expression


    bash中常用的条件测试有三种:
    整数测试:
    -gt
    -le
    -ne
    -eq
    -ge
    -lt

    例子:

    INT1=63
    INT2=77
    [ $INT1 -eq $INI2 ]
    [[ $INT1 -eq $INT2 ]]
    test $INT1 -eq $INT2  


    文件测试:
    -e FILE:测试文件是否存在
    -f FILE: 测试文件是否为普通文件
    -d FILE: 测试指定路径是否为目录
    -r FILE: 测试当前用户对指定文件是否有读取权限;
    -w
    -x

    例子:
    [ -e /etc/inittab ]
    [ -x /etc/rc.d/rc.sysinit ]


    exit: 退出脚本
    exit #
    如果脚本没有明确定义退出状态码,那么,最后执行的一条命令的退出码即为脚本的退出状态码;


    测试脚本是否有语法错误
    bash -n 脚本

    bash -x 脚本:单步执行


    bash变量的类型:
    本地变量(局部变量)
    环境变量
    位置变量: 
    $1, $2, ...
    shift
    特殊变量:
    $?
    $#:参数的个数
    $*: 参数列表
    $@:参数列表
    引用变量:${VARNAME}, 括号有时可省略。

    例子:
    ./filetest.sh /etc/fstab /etc/inittab
    $1: /etc/fstab
    $2: /etc/inittab



    起风了,努力生存
  • 相关阅读:
    iframe嵌套
    fiddler——一款莱斯的抓包工具
    工程代码规范和更新规范
    新项目新工作空间新仓库新setting文件
    quartz-job实现实时或定时发送短信任务
    quartz-job实现定时任务配置
    quartz开源作业调度框架的配置
    Confluence 6 让一个空间可以公众访问
    Confluence 6 管理和恢复空间管理权限
    Confluence 6 指派和撤销空间权限
  • 原文地址:https://www.cnblogs.com/StivenYang/p/8441310.html
Copyright © 2011-2022 走看看