什么是变量

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

普通变量:

单引号:原字符输出,变量名=‘变量值’

         ➜shellname='tom'➜shellecho$nametom

双引号:变量名=“变量值”,看一下值当中有没有对其他变量的引用,如果有就获取变量值然后组合到一起输出

         ➜shellword="I am $name"➜shellecho$wordI    am     tom

直接命名不加任何引号:变量名=变量值

         ➜shellage=33➜shellecho$age33

习惯用法:数字不加引号,其他家双引号

命令变量:变量值是命令的变量,会将命令的执行结果赋值给变量

变量名 = 命令,这是反引号

            ➜shellfiles=`ll`➜shellecho$filestotal8-rwxr-xr-x1zhouyajun  staff    228B Mar2621:58itcast.shdrwx-wx--x3zhouyajun  staff96B Oct1122:15test

变量名=$(命令)

            ➜shellwoshishui=$(whoami)➜shellecho$woshishuizhouyajun

执行流程:执行命令,将命令执行后的结果复制给新的变量名

全局变量

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

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就要用大括号括起来n 获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0的时候表示脚本的文件名,如果n大于9就要用大括号括起来n获取当前执行的shell脚本的第n个参数值,n=1..9,当n为0的时候表示脚本的文件名,如果n大于9就要用大括号括起来{10}

            #! /bin/bashecho"获取参数"echo"获取命令行参数:$1"➜  shell /bin/bash get_args.sh 1 2 3获取参数获取命令行参数:1

$# 获取当前执行shell命令行中参数的总个数

            #! /bin/bashecho"获取参数"echo"获取命令行参数:$#"➜  shell /bin/bash get_args.sh 1 2 3 d gf获取参数获取命令行参数:5

$? 获取执行上一个指令的返回值(0为成功,非0为失败)

            ➜shellecho$? 这是上面指令执行结果0➜shellasdfas  这是一条错误指令zsh:commandnot found: asdfas➜shellecho$?127

精确获取 ${变量名:其实位置:截取长度},

    ${file:0:5} 从第一个字符开始,截取5个字符${file:5:5} 从第6个字符开始截取6个字符${file:0-6:5} 从倒数第6个字符开始,截取之后的5个字符➜shellfile=abcdefghijklmnopkrstuvwxyz➜shellecho$fileabcdefghijklmnopkrstuvwxyz➜shellecho${file:0:5}abcde➜shellecho${file:5:5}fghij➜shellecho${file:0-6:5}uvwxy

默认值

有条件生效 ${变量名:-默认值},如果变量没有指向的内容就输出默认值

            #! /bin/basha="$1"# 获取命令行第一个参数echo"参数的值是:${a:-1}"# 设置默认值1➜  shell /bin/bash default_value.sh 55参数的值是: 55➜  shell /bin/bash default_value.sh参数的值是: 1

无条件生效 ${变量名+默认值} 如果是否有指向内容,都输出默认值

资源分享

下面这些是我的收集和整理的资料,对于开始学习【软件测试】或是技能进阶的朋友来说,绝对是最全面的教程仓库,这个仓库也陪伴我走过了最艰难的路程,希望也能帮助到你。

关注【程序媛木子】微信公众号里领取免费测试资源获取,技术交流群(644956177)

测试工程师,必须掌握的shell变量知识相关推荐

  1. 不需要网络的调频收音机_测试工程师真的不需要懂网络知识么?

    1 导语 随着现在互联网公司的普及,越来越多的测试工程师从事web应用测试和移动APP测试类的产品,更加偏向应用. 所以导致越来越多的测试工程师对网络基础知道的甚少. 我曾经做过一个小调查,大概200 ...

  2. java测试工程师需要掌握什么_测试工程师需不需要了解开发知识?

    测试工程师需不需要了解开发知识?相信很多已经入行的小伙伴,当初或多或少抱着测试不需要写代码,才选择干这行的.包括一些专业的IT培训机构,老师在给学员做专业指导时,也会说测试不需要写代码,针对不喜欢从事 ...

  3. linux运维基础进阶和shell入门,Linux运维工程师从基础到进阶:Shell变量知识梳理...

    原标题:Linux运维工程师从基础到进阶:Shell变量知识梳理 Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂 ...

  4. shell 输出数据到文本_Linux运维工程师从基础到进阶:Shell变量知识梳理

    Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂,却是云计算开发人员必须要掌握的技术之一.接下来的广州云计算培训小 ...

  5. @value 静态变量_Linux运维工程师从基础到进阶:Shell变量知识梳理

    Shell是一个用C语言编写的程序,它是用户使用Linux的桥梁.Shell既是一种命令语言,又是一种程序设计语言,涵盖的知识点多且杂,却是云计算开发人员必须要掌握的技术之一.接下来的广州云计算培训小 ...

  6. js能订阅mq吗_测试工程师,必须了解的MQ知识!

    什么是消息中间件?通过提供某种规范实现在不同系统之间传递语义准确的消息.专注于数据的发送和接收,利用高效可靠的异步消息传递机制的集成分布式系统.什么是MQ? MQ全称为Message Queue, 消 ...

  7. 测试工程师的能力分类

    软件测试发展简史 乘着互联网的封口,测试行业发展的也是如火如荼,很多科班/非科班的人员涌入这个行业.作为一名测试工程师,咱们先了解一下测试这个行业发展的历程,也方便对别人进行科普(侃大山) 测试工程师 ...

  8. 【杂谈】如何通过目标职位确定学习路径和努力方向(拿测试工程师举例子)

    测试工程师如何确定学习路径和努力方向 目录 测试工程师如何确定学习路径和努力方向 目录 前言 干货 确定职业定位 招聘网站 面试 危机感和下个层次的目标 行业经验 总结 前言 首先是好久没有写博客了, ...

  9. 测试工程师值得被尊重!是否有此共鸣!

    内心持久的声音 测试工程师值得被尊重,是我一直以来内心的声音,这个声音憋了很久很久,所以本文觉得不是标题党,而是实实在在的内心想法.当然,有可能偏激,有可能太泛泛,也有可能说的都是P话,但我相信会直接 ...

最新文章

  1. 从零开始的ROS四轴机械臂控制-目录
  2. celery 停止执行中 task
  3. 浅谈Javascript中的void操作符
  4. python做电脑软件-程序员带你十天快速入门Python,玩转电脑软件开发(一)
  5. 智力+贪心的过河问题
  6. Google 开源技术protobuf 简介与样例
  7. 数据结构和算法基础之冒泡排序
  8. delphi 调用php接口_爱站权重查询 API 接口请求调用
  9. Laravel框架登录功能实例
  10. MYSQL执行计划EXPLAIN
  11. 普通人如何快速翻身?
  12. PS2: 这篇文章中的图片绘图工具使用的是Dia (sudo apt-get install dia)。据说yEd也很不错。...
  13. 全栈溯源、mAPM、金融性能、Oracle VS. MySQL:看APM技术专场有哪些干货
  14. CREO产品柔性建模 参数化 模具 TOP DOWN设计
  15. 详细完整MySQL8.0.23安装教程
  16. 游戏公司游戏策划面试笔记
  17. 凯撒密码/自定义移位加密
  18. pdf线条粗细设置_pdf线条很模糊怎么办 如何调整pdf线条粗细
  19. M25F1 4G全网通终端的技术应用
  20. [C语言错误]expected declaration or statement at end of input)

热门文章

  1. IOS Animation-KeyPath值
  2. Capsule:支持容器的JVM应用程序打包部署工具
  3. javascript arguments对象研究--针对jquery源码研究再研究
  4. 教你学习CI框架codelgniter——CI框架基本配置
  5. linux安装 tomcat 6 笔记
  6. 基于python的性能测试工具_基于 Python 的性能测试工具 locust 与 LR 的简单对比[转发]...
  7. 【论文写作】SSM房屋租赁系统如何写设计总结
  8. 基于Bokeh库,手把手教你制作“子弹图“和“瀑布图“!
  9. 信号与系统考研复习例题详解_小语种日语日本文学复习考研资料加藤周一《日本文学史序说(上)》笔记和考研真题详解...
  10. 平纹、斜纹、缎纹是什么?各自有何特点?