测试工程师必须要掌握的shell变量知识

597 篇文章 17 订阅
4 篇文章 2 订阅

什么是变量

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

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

➜  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
shushanke

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

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

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

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

点赞关注~~持续分享,加入我们,642830685,群内免费领取最新软件测试大厂面试资料和Python自动化、接口、框架搭建学习资料!技术大牛解惑答疑,同行一起交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值