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

发表于:2020-4-14 13:16

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:测试轩    来源:博客园

#
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就要用大括号括起来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
  无条件生效 ${变量名+默认值} 如果是否有指向内容,都输出默认值

      本文内容不用于商业目的,如涉及知识产权问题,请权利人联系博为峰小编(021-64471599-8017),我们将立即处理
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号