變量

變量

  • 變量是在程序中保存用戶數據的一塊內存空間,變量名就是這個內存空間的地址
  • 計算機重啟后,變量數值會丟失
  • 標準的命名為x="xxxxxxx"
  • 變量調用為${x},在不引起歧義的情況下可簡寫成$x
  • 變量名盡量以字母開頭.只可包含字母、數字、下劃線
  • 變量分類
  • declare = typeset 定義變量類型(declare -i xxx定義xxx為整數型)

    -i:整數型,之后有運算求值表達式結果為整數,如果求值失敗或不是整數,則為0
    -p:顯示所有變量的值
    -r:聲明為只讀變量,或用readonly name,變量只有在進程結束才可以釋放
    -a:數組變量,不用事先定義,數值沒有下標則=數組+0下標
    -f:顯示所有自定義函數,包括名稱和函數體
    -x:將變量聲明為環(huán)境變量,可以在以后的腳本和程序中調用
    
  • 常用環(huán)境變量

    PATH:命令搜索路徑,以冒號為分隔符
    HOME:用戶的主目錄
    COLUMNS:命令編輯模式下可使用命令行的長度
    HISTFILE:命令歷史文件
    HISTSIZE:命令歷史文件的最大行數
    IFS:定義SHELL的分隔符
    LOGNAME:當前登陸名
    SHELL:shell的全路徑名
    TERM:終端類型
    TMOUT:shell自動退出的時間,0為不自動退出
    PWD:當前工作目錄
    OLDPWD:上一次工作目錄
    
  • 變量對比

    變量配置方式 y 沒配置 y 為空字符串 y 已配置非空字符串
    x=${y-新值} x=新值 x= x=$y
    x=${y:-新值} x=新值 x=新值 x=$y
    x=${y+新值} x= x=新值 x=新值
    x=${y:+新值} x= x= x=新值
    x=${y=新值} y=新值,x=新值 y不變 x= y不變 x=$y
    x=${y:=新值} y=新值 x=新值 y=新值 x=新值 y不變 x=$y
    x=${y?新值} 新值 輸出至 err x= x=$y
    x=${y:?新值} 新值 輸出至 err 新值 輸出至 err x=$y
  • 變量賦值及簡單調用

    [xzt7566@centos7-test Downloads]$ cat test.sh
    #! /bin/bash
    x=123                變量賦值,這個 = 前后不能有空格 
    let "x += 1"         運算,這個 += 兩邊要有空格
    echo "x=$x"          $x表示調用變量,$x中間不能用空格,其他原樣輸出
    
    [xzt7566@centos7-test Downloads]$ bash test.sh
    x=124
    
    echo                 顯示空行
    y=${x/1/abc}         將x中1換成abc,定義為y
    echo "y=$y"          
    
    y=abc24              124中的1替換成abc..結果為abc24
    
    declare -i y         定義y為整數型變量,但不影響以前的賦值
    
    
    [xzt7566@centos7-test Downloads]$ cat >> test.sh
    let "y += 2"         運算
    echo "y=$y"          y不是數字,所以自動在運算時清為0
    
    y=2                  0+2=2 結果為2
    
    #! /bin/bash
    typeset -i qq        在聲明了變量之前規(guī)定了類型,則在賦值時為進行運算
    qq=18/2
    echo "$qq"
    [xzt7566@centos7-test Downloads]$ bash 1.sh
    9
    
    #! /bin/bash
    qq=18/2
    typeset -i qq        在聲明了變量之后規(guī)定了類型,則直接顯示為原字符串
    echo "$qq"
    [xzt7566@centos7-test Downloads]$ bash 1.sh
    18/2
    
    [xzt7566@centos7-test Downloads]$ echo "$[12/3]" 方括號表示為運算
    4
    
    [xzt7566@centos7-test Downloads]$ echo "$((12/4))" 雙圓括號也表示為運算
    3
    
    [xzt7566@centos7-test Downloads]$ echo "$(pwd)"
    /home/xzt7566/Downloads
    
  • 定義全局變量

    [xzt7566@centos7-test Downloads]$ cat 1.sh
    #! /bin/bash
    
    func ()
    {
    echo "$v1"
    v1=200
    }
    v1=100
    
    func                 調用func 可理解為函數
    echo "$v1"           顯示使用了func后的值
    
    [xzt7566@centos7-test Downloads]$ bash 1.sh
    100                  echo "$v1"顯示為剛賦值過的100
    200                  func中賦值v1=200,之后的顯示為200
    
  • 定義局部變量

    [xzt7566@centos7-test Downloads]$ cat 1.sh
    #! /bin/bash
    
    func ()
    {
    echo "$v1"
    local v1=200
    }
    v1=100
    func
    echo "$v1"
    
    [xzt7566@centos7-test Downloads]$ bash 1.sh
    100
    100
    
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • Nginx 的配置文件使用的就是一門微型的編程語言,許多真實世界里的 Nginx 配置文件其實就是一個一個的小程序...
    SkTj閱讀 4,423評論 0 7
  • shell編程shell主要用來簡化管理操作bash變量1.什么是變量變量是計算機內存的單元,其中存放的值可以改變...
    小線亮亮閱讀 1,224評論 0 1
  • 1.區(qū)分大小寫 php變量區(qū)分大小寫,php常量也區(qū)分大小寫,可以設置為不區(qū)分,不建議,而系統(tǒng)關鍵字不區(qū)分。 2....
    海野夏桑閱讀 164評論 0 0
  • 原本計劃好今天的行程是:銀座、東京塔、筑地市場,澀谷(原宿) 我們倆在地鐵上說話說過站了,想著倒回去麻煩,反正銀座...
    Amanda向閱讀 379評論 0 2
  • 人生不要想得太多 也不要扛得太重 有些事情 不由你想得那么簡單 也有些事情并不是你想象的 那么紛繁,復雜 世界很精...
    老查查閱讀 2,419評論 50 95

友情鏈接更多精彩內容