• shell脚本基础1


    1.echo 输出变量
    等号连接变量与变量内容
    [root@test45 ~]# echo $myname
    [root@test45 ~]# myname=bich
    [root@test45 ~]# echo $myname
    bich

    2.基本规范
    等号两边不能直接接空格符,可用双引号或单引号连接
    双引号中的特殊字符保持原有意义,单引号中的特殊字符为纯文本
    `指令` 或 $指令用来

    变量名称只能是英文或数字且开头字母不能是数字

    跳脱字符 \ 可以将特殊字符转换成一般字符

    扩充变量内容:用"$变量名称"或$变量累加内容
    PATH="$PATH":/home/bin or PATH=${PATH}:/home/bin


    取消变量:unset 变量名

    3.父程序与子程序
    子程序
    root@test45 ~]# myname="$myname"yes
    [root@test45 ~]# echo $myname
    mdoryes
    [root@test45 ~]# bash ---bash 进入子程序,父程序的自定义变量子程序看不见
    [root@test45 ~]# echo $myname

    [root@test45 ~]# exit
    exit
    [root@test45 ~]# export myname ---设定环境变量
    [root@test45 ~]# bash ----子程序可以看见
    [root@test45 ~]# echo $myname
    mdoryes

    echo $(uname -r)
    2.6.32-431.el6.x86_64

     4.相关命令

    1)locate crontab----locate列出所有相关文件路径


    -----------------------------------------------------------
    2) 环境变量:
    env列出当前所有shell环境下的环境变量和内容(export也有类似功能)

    set列出当前所有变量 包括环境变量(全局变量)和自定义变量(局部变量)

    RANDOM 随机环境变量
    [root@test45 ~]# echo $RANDOM
    29030
    [root@test45 ~]# declare -i number=$RANDOM*10/32768 ---取0-9随机数
    [root@test45 ~]# echo $number


    3) PS1
    4)$: $本身就是一个变量 数字是shell的PID
    echo $$
    4532

    ?: 上一个执行的指令所回传的值 上一个指令成功执行,会回传0值,错误回传非0值

    5)export:自定义变量转化为环境变量

    6)locale: 显示语序结果的语系变量(显示支持的所有语序)

    [root@test45 ~]# locale
    LANG=en_US.UTF-8
    LC_CTYPE="en_US.UTF-8"
    LC_NUMERIC="en_US.UTF-8"
    LC_TIME="en_US.UTF-8"
    LC_COLLATE="en_US.UTF-8"
    LC_MONETARY="en_US.UTF-8"
    LC_MESSAGES="en_US.UTF-8"
    LC_PAPER="en_US.UTF-8"
    LC_NAME="en_US.UTF-8"
    LC_ADDRESS="en_US.UTF-8"
    LC_TELEPHONE="en_US.UTF-8"
    LC_MEASUREMENT="en_US.UTF-8"
    LC_IDENTIFICATION="en_US.UTF-8"
    LC_ALL=

    7)read:键盘直接输入变量值
    read 变量名
    输入变量值
    参数:-p : 接提示字符
    -t : 后面可以接等待秒数

    8)declare:宣告变量的类型
    declare [-aixr] variable
    选项与参数
    -a: 将variable的变量定义为数组(array)
    -i: 将variable的变量定义为整数数字(int)
    -x:=export 将variable变量定义为环境变量
    -r:将变量定义成为readonly类型---变量不可被更改内容,也不能unset


    如:
    [root@test45 ~]# sum=100+900
    [root@test45 ~]# echo $sum
    100+900
    [root@test45 ~]# declare -i $sum ---掌握正确格式
    -bash: declare: `100+900': not a valid identifier
    [root@test45 ~]# declare -i sum=100+900
    [root@test45 ~]# echo $sum
    1000

    当不指定变量类型时,默认为字符串类型--所以上面会出错
    需要非字符串类型时就需要用declare来进行变量宣告

    当一个用户已有一个变量类型,想去掉时把参数前- 改为+即可

    declare -p 变量
    可以列出当前变量的所有类型
    declare -p sum
    declare -i sum="1000"

    8) 数组:

    9)var[]=值
    读取数组${变量}

    10)ulimit 文件系统及程序的限制关系(限制用户的某些资源,包括CPU使用事件,内存总量及可以开启的文件数量)
    ulimit [-HSacdfltu]  [配额]

     11) 删除字符串

    # path=${PATH}
    # echo $path
    /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
    # echo ${path#/*local/bin:}
    /sbin:/bin:/usr/sbin:/usr/bin:/root/bin

    ${path#/*local/bin:}
    :#表示从变量path的内容最前面开始向右删除,且删除最短的一个
    /*local/bin::为删除的内容,/是内容开头的,*是通配符

    ## 代表删除掉最长的那个数据

     12)取代字符串:/ /之间的是旧字符 最后一个/后面的是新字符

    # echo $dmtsai
    /var/spool/mail/dmtsau
    # echo ${dmtsai/dmtsau/dmtsai}
    /var/spool/mail/dmtsai

    总结:

    13)变量的测试与内容替换

     

  • 相关阅读:
    Javascript引擎的单线程机制和setTimeout执行原理阐述
    给定红包个数和红包金额,计算红包的金额
    oracle日志归档空间清理
    Jmeter之录制控制器与代理的使用
    Jmeter分布式测试的坑
    Jmeter之Cookie和Session处理
    性能测试之JMeter远程模式
    JMeter自带工具录制配置方法
    Jmeter分布式测试
    性能测试的 Check List (不断更新中)
  • 原文地址:https://www.cnblogs.com/zhanglei97/p/15793259.html
Copyright © 2020-2023  润新知