• Shell 学习(二)


    Shell 学习(二)

    1 设置环境变量

    1.1 基本语法

    1)export 变量名=变量值 (功能描述:将shell变量输出为环境变量)

    2)source 配置文件 (功能描述:让修改后的配置信息立即生效)

    3)echo $变量名 (功能描述:查询环境变量的值)

    我们来做个测试,在/etc/profile文件里面新增一个环境变量

    1.2 实践

    1) 在/etc/profile 文件中定义TOMCAT_HOME环境变量

    #!/bin/bash
    #定义一个自己的环境变量
    TOMCAT_HOME=/opt/tomcat
    export TOMCAT_HOME
    

    2)查看环境变量TOMCAT_HOME的值

    echo $TOMCAT_HOME
    

    3)在另外一个shell程序中使用TOMCAT_HOME

    #使用我们自定的环境变量
    echo "tomcat_home=$TOMCAT_HOME"
    
    #多行注释 用法为  :<<!   !
    

    注意:在输出TOMCAT_HOME 环境变量前,需要让其生效

    source /etc/profile

    2 位置参数变量

    2.1 介绍

    当我们执行一个shell脚本时,如果希望获取到命令行的参数信息,就可以使用到位置参数变量。比如: ./myshell.sh 100 200 ,这个就是一个执行shell的命令行,可以在myshell 脚本中获取到参数信息

    2.2 基本语法

    • $n (功能描述:n为数字,$0代表命令本身,$1-$9 代表第一到第九个参数,十以上的 参数需要用大括号包含,比如${10})
    • $* (功能描述:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体)
    • $@ (功能描述:这个变量也代表命令行中所有的参数,$@ 把所有的参数区分对待)
    • $# (功能描述:这个代表代表命令行中所有参数的个数)

    2.3 位置参数变量应用实例

    案例:编写一个shell脚本positionPara.sh ,在脚本中获取到命令行的各个参数信息

    #!/bin/bash
    #获取到各个参数
    echo "$0 $1 $2"
    echo "$*"
    echo "$@"
    echo "参数个数=$#"
    

    执行

    #赋予权限
    chomd 744 ./positionPara.sh
    ./ positionPara.sh 30 60 
    

    3 预定义变量

    3.1 基本介绍

    就是shell 设计者事先已经定义好的变量,可以直接在shell脚本中使用

    3.2 基本语法

    • $$ (功能描述:当前进程的进程号(PID))
    • $! (功能描述:后台运行的最后一个进程的进程号(PID))
    • $?(功能描述:最后一次执行的命令的返回状态。如果这个变量的值为0,证明上一个命令正确执行;如果这个变量的值为非0(具体是哪个数,由命令自己来决定),则证明上一个命令执行不正确了)

    3.3 应用实例

    在一个shell脚本中简单使用一下预定义变量

    #!/bin/bash
    echo "当前的进程号=$$"
    #后台的方式运行 myShell.sh
    ./myShell.sh &
    echo "最后的进程号=$!"
    echo "执行的值=$?"
    

    4 运算符

    4.1 基本介绍

    如何在shell中进行各种运算操作

    4.2 基本语法

    1) “$((运算式))” 或“$[运算式]”
    
    2) expr m + n
    
    #注意expr 运算符间要有空格
    
    3) expr m - n
    4) expr *,/,%  乘,除,取
    

    应用实例

    • 案例1:计算(2+3)X 4 的值

      • $((运算式))
      #!/bin/bash
      #第一方式$()
      RESULT1=$(((2+3)*4))
      echo "result1=$RESULT1"
      

    • $[运算式]
    #!/bin/bash
    RESULT2=$[(2+3)*4]
    echo "result2=$RESULT2"
    

    • expr
    #!/bin/bash
    TEMP=`expr 2 + 3`
    RESULT3=`expr $TEMP * 4`
    echo "result=$RESULT3"
    

    • 案例2:请求出命令行的两个参数[整数]的和
    #!/bin/bash
    SUM=$[$1+$2]
    echo "SUM=$SUM"
    

    5 条件判断

    判断语句

    5.1 基本语法

    ​ [ condition ](注意condition 前后要有空格)

    ​ #非空返回true,可使用$? 验证(0为true,>1 为false)

    5.2 应用实例

    当[]这个里面有数值的时候,则为非空,为真,就返回true。 []里面没有数值,就为空,返回false

    • ​ [ atguigu ] 返回true

    • ​ [] 返回false

    • [ condition ] && echo OK || echo notok 条件满足,执行后面的语句

    5.3 常用判断条件

    1) 两个整数的比较

    = 字符串比较

    -lt 小于(less than)

    -le 小于等于

    -eq 等于

    -gt 大于(greater than)

    -ge 大于等于

    -ne 不等于

    2)按照文件权限进行判断

    -r 有读的权限 tips: 判断是否有权限, 就这么写就行了[ -r 文件 ]

    -w 有些的权限

    -x 有执行的权限

    3)按照文件类型进行判断

    -f 文件存在并且是一个常规的文件

    -e 文件存在

    -d 文件存在并非是一个目录

    5.4 应用实例

    案例1:“ok”是否等于“ok”

    判断语句:

    #!/bin/bash
    if ["ok"="ok"]
    then 
    echo "等于"
    fi
    

    案例2:23是否大于22

    判断语句

    #!/bin/bash
    if[23 -gt 22]
    then 
    echo "大于"
    fi
    

    案例3:/root/shell/aaa.txt 目录中的文件是否存在

    判断语句

    #!/bin/bash
    if [-e /root/shell/aaa.txt]
    then 
    echo "存在"
    fi
    
  • 相关阅读:
    HDU 5120 计算两圆环相交面积
    HDU
    Dinic (邻接表实现) + 当前弧优化
    java —— static 关键字
    java —— this 关键字
    双连通分量 Road Construction POJ
    2-SAT(HDU-3062 party)
    java——构造器理解
    『题解』Codeforces1142A The Beatles
    『题解』Codeforces1142B Lynyrd Skynyrd
  • 原文地址:https://www.cnblogs.com/jianshuai520/p/11805503.html
Copyright © 2020-2023  润新知