測試工程師須要瞭解的shell變量知識

歡迎訪問我的博客html

什麼是變量

  • 本地變量:手動定義的,在當前系統的某個環境下才能生效,做用範圍小shell

    • 普通變量:bash

      • 單引號:原字符輸出,變量名=‘變量值’
      ➜  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命令中自帶的一些參數變量

  • 腳本文件ui

    • $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}code

    #! /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爲失敗)htm

      ➜  shell echo $?  這是上面指令執行結果
      0
      ➜  shell asdfas  這是一條錯誤指令
      zsh: command not found: asdfas
      ➜  shell echo $?
      127
  • 精確獲取 ${變量名:其實位置:截取長度},get

    • ${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
    • 無條件生效 ${變量名+默認值} 若是是否有指向內容,都輸出默認值

歡迎你們去 個人博客 瞅瞅,裏面有更多關於測試實戰的內容哦!!

相關文章
相關標籤/搜索