测试工程师需要了解的shell变量知识

欢迎访问个人博客

什么是变量

  • 本地变量:手动定义的,在当前系统的某个环境下才能生效,作用范围小

    • 普通变量:

      • 单引号:原字符输出,变量名=‘变量值’
      ?  shell name=‘tom‘
      ?  shell echo $name
      tom
      
      • 双引号:变量名=“变量值”,看一下值当中有没有对其他变量的引用,如果有就获取变量值然后组合到一起输出
      ?  shell word="I am $name"
      ?  shell echo $word
      I am tom
      
      • 直接命名不加任何引号:变量名=变量值
      ?  shell age=33
      ?  shell echo $age
      33
      
      • 习惯用法:数字不加引号,其他家双引号
    • 命令变量:变量值是命令的变量,会将命令的执行结果赋值给变量
      • 变量名=`命令`,这是反引号
      ?  shell files=`ll`
      ?  shell echo $files
      total 8
      -rwxr-xr-x  1 zhouyajun  staff   228B Mar 26 21:58 itcast.sh
      drwx-wx--x  3 zhouyajun  staff    96B Oct 11 22:15 test
      
      • 变量名=$(命令)
      ?  shell woshishui=$(whoami)
      ?  shell echo $woshishui
      zhouyajun
      
      • 执行流程:执行命令,将命令执行后的结果复制给新的变量名

全局变量: 手工加默认方式定义的作用范围最大的变量

  • env 查看所有的全局变量
  • 声明全局变量
    • name=tom, 然后 export name,这就声明为全局变量了
    • export name=tom,直接声明全局变量

查看、删除变量

  • 查看变量

    • "asd ${变量名}"
    • "${变量名}"
  • 删除--unset 变量名

内置变量:bash命令中自带的一些参数变量

  • 脚本文件

    • $0 获取当前执行的shell脚本文件名

      #! /bin/bash
      # yy复制,p粘贴
      echo "获取当前文件名:get_name"
      echo "获取当前文件名:$0"
      
      ?  shell /bin/bash get_name.sh
      获取当前文件名:get_name
      获取当前文件名:get_name.sh
      
    • $n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0的时候表示脚本的文件名,如果n大于9就要用大括号括起来${10}
    #! /bin/bash
    echo "获取参数"
    echo "获取命令行参数:$1"
    
    ?  shell /bin/bash get_args.sh 1 2 3
    获取参数
    获取命令行参数:1
    
    • $# 获取当前执行shell命令行中参数的总个数
    #! /bin/bash
    echo "获取参数"
    echo "获取命令行参数:$#"
    
    ?  shell /bin/bash get_args.sh 1 2 3 d gf
    获取参数
    获取命令行参数:5
    
    • $? 获取执行上一个指令的返回值(0为成功,非0为失败)

      ?  shell echo $?  这是上面指令执行结果
      0
      ?  shell asdfas  这是一条错误指令
      zsh: command not found: asdfas
      ?  shell echo $?
      127
      
  • 精确获取 ${变量名:其实位置:截取长度},
    • ${file:0:5} 从第一个字符开始,截取5个字符
    • ${file:5:5} 从第6个字符开始截取6个字符
    • ${file:0-6:5} 从倒数第6个字符开始,截取之后的5个字符
    ?  shell file=abcdefghijklmnopkrstuvwxyz
    ?  shell echo $file
    abcdefghijklmnopkrstuvwxyz
    ?  shell echo ${file:0:5}
    abcde
    ?  shell echo ${file:5:5}
    fghij
    
    ?  shell echo ${file:0-6:5}
    uvwxy
    
  • 默认值
    • 有条件生效 ${变量名:-默认值},如果变量没有指向的内容就输出默认值
    #! /bin/bash
    a="$1" # 获取命令行第一个参数
    echo "参数的值是: ${a:-1}"  # 设置默认值1
    
    ?  shell /bin/bash default_value.sh 55
    参数的值是: 55
    ?  shell /bin/bash default_value.sh
    参数的值是: 1
    
    • 无条件生效 ${变量名+默认值} 如果是否有指向内容,都输出默认值

欢迎大家去 我的博客 瞅瞅,里面有更多关于测试实战的内容哦!!

原文地址:https://www.cnblogs.com/zyjimmortalp/p/12578648.html

时间: 2024-11-11 19:37:23

测试工程师需要了解的shell变量知识的相关文章

《跟老男孩学Linux运维之shell编程实战》-第三章 shell变量知识进阶

本文讲解shell变量知识进阶. 以下为知识点的总结,关于练习,本文不不涉及,还需要各位小伙伴自己练习! 1.shell中的特殊位置参数变量,请见下表: 在企业场景下,"$?"的用法: (1)判断命令.脚本或函数等程序是否执行成功: (2)若在脚本中调用执行"exit 数字",则会返回这个数字给"$?"变量: (3)如果是在函数里,则通过"return  数字",把这个数字以函数返回值的形式传给"$?".

Shell变量知识进阶

一.shell中特殊且重要的变量 1.特殊位置变量 在shell中存在着一些特殊且重要的变量,例如:$0.$1.$#,我们可以称之为特殊位置变量.要想从命令行.函数或脚本执行等传递参数时,就需要在Shell脚本中使用位置参数变量. 常用的特殊位置参数变量,如图:举例说明:$0 [[email protected] ~]# cat a.sh echo $0 [[email protected] ~]# sh a.sh a.sh [[email protected] ~]# sh /root/a.s

Bash Shell脚本编程-变量知识

Shell:GUI  CLI 提供交互式接口:提高效率 命令行展开:~ ,{} 命令别名:alias 命令历史:history Globbing:*,?,[],[^] 命令补全:$PATH指定的目录下 路径补全:TAB键 管道:| 输入输出重定向:>    >> 提供编程环境: bash自动运行脚本机制 面向过程(以指令为中心组织数据)的编程模型 脚本编程 输入指令解决问题 程序是语句和表达式组成的 运行时根据一定流程来执行: 顺序执行 选择执行 循环执行 程序是指令+数据的 面向对象(

测试工程师,选择python还是java?

问:“你平时工作中,用java多还是用python多”? 答:“都还可以,根据具体的场景选择不同的语言”. 问:“比如说呢”? 答:“开发自己的测试平台,肯定会选择java:在centos服务器跑一些脚本,会选择python或shell:某些压测场景,追求高并发,可能会选择go语言”. 问:“我java和python都学了一些基础知识,不知道该选择哪种语言”. 答:“可以先选择一门你相对擅长的语言,先开始用起来”. 这是前两天,一位身边的小伙伴和我的对话. 相信有这样疑问的人不在少数,就是自己到

Shell基础知识

防伪码:长风破浪会有时,直挂云帆济沧海. 1.1 l Shell  简介 Shell 是一个 C 语言编写的脚本语言,它是用户与 Linux 的桥梁,用户输入命令交给 Shell 处理, Shell 将相应的操作传递给内核(Kernel),内核把处理的结果输出给用户. 下面是处理流程示意图: Shell 既然是工作在 Linux 内核之上,那我们也有必要知道下 Linux 相关知识. Linux 是一套免费试用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 UNIX 的多用户.多

《Linux shell变量总结回顾》RHEL6

由于上篇文章总结的不是很详细,有很多方面并未涉及到shell各个方面,所以发表此文章对shell做了更全面的总结: 文章版权:http://www.cnblogs.com/linux-super-meng/ 环境变量路径: [[email protected] ~]# set   //查看到的是局部变量和全局变量2种 [[email protected] ~]# env  //查看系统的全局环境变量 [[email protected] ~]# echo $PATH  //查看系统环境变量路径

《Linux shell变量总结回顾》RHEL6(转)

文章版权:http://www.cnblogs.com/linux-super-meng/ 环境变量路径: [[email protected] ~]# set   //查看到的是局部变量和全局变量2种 [[email protected] ~]# env  //查看系统的全局环境变量 [[email protected] ~]# echo $PATH  //查看系统环境变量路径 [[email protected] ~]# export $PATH  //也可以使用export查看环境变量路径

测试工程师的分类和发展方向

测试工程师的分类: 1.功能测试工程师 2.性能测试工程师 3.安全测试工程师 4.自动化测试工程师 5.测试开发工程师 6.高级测试开发工程师 7.测试专家 层次: 第一层:1.功能测试,按需求检测开发产品是否符合需求 第二层:2.3.4,这层的测试人员需要熟悉一些开发工具,开源框架,借助简单的监本来完成性能.安全.和回归测试 第三层:5.6,需要通过编码,或者对开源框架,工具进行二次开发,开发测试工具,测试平台等来解决前两层测试人员工作中遇到的问题,提高工作效率. 第四层:测试专家,能发现测

Shell编程从入门到精通-第二章.shell变量

二.Shell变量 2.1.什么是变量 在小学的时候我们学过数学方程式,例如:已知x=1,y=x+1那么y等于多少 在上述的题目中x和y被称为未知数,但是在shell编程里它们是变量名,等号右边的1和x+1是变量的内容,(这里"="被称为赋值) 通过上面的介绍可以得出,变量就是用一个固定的字符串代替更多,更复杂的内容,该内容包含变量.路径.字符串等其他的内容,变量是暂时存储数据的地方和标记,所存储的数据存在内存空间中,通过调用内容空间的变量名字就可以取出变量对应的数据.使用变量最大的好