變量

變量

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

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

    PATH:命令搜索路徑,以冒號為分隔符
    HOME:用戶的主目錄
    COLUMNS:命令編輯模式下可使用命令行的長度
    HISTFILE:命令歷史文件
    HISTSIZE:命令歷史文件的最大行數(shù)
    IFS:定義SHELL的分隔符
    LOGNAME:當(dāng)前登陸名
    SHELL:shell的全路徑名
    TERM:終端類型
    TMOUT:shell自動退出的時間,0為不自動退出
    PWD:當(dāng)前工作目錄
    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
  • 變量賦值及簡單調(diào)用

    [xzt7566@centos7-test Downloads]$ cat test.sh
    #! /bin/bash
    x=123                變量賦值,這個 = 前后不能有空格 
    let "x += 1"         運(yùn)算,這個 += 兩邊要有空格
    echo "x=$x"          $x表示調(diào)用變量,$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..結(jié)果為abc24
    
    declare -i y         定義y為整數(shù)型變量,但不影響以前的賦值
    
    
    [xzt7566@centos7-test Downloads]$ cat >> test.sh
    let "y += 2"         運(yùn)算
    echo "y=$y"          y不是數(shù)字,所以自動在運(yùn)算時清為0
    
    y=2                  0+2=2 結(jié)果為2
    
    #! /bin/bash
    typeset -i qq        在聲明了變量之前規(guī)定了類型,則在賦值時為進(jìn)行運(yùn)算
    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]" 方括號表示為運(yùn)算
    4
    
    [xzt7566@centos7-test Downloads]$ echo "$((12/4))" 雙圓括號也表示為運(yùn)算
    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                 調(diào)用func 可理解為函數(shù)
    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
    
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末洞翩,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子焰望,更是在濱河造成了極大的恐慌骚亿,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,744評論 6 502
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件熊赖,死亡現(xiàn)場離奇詭異来屠,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)震鹉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,505評論 3 392
  • 文/潘曉璐 我一進(jìn)店門俱笛,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人传趾,你說我怎么就攤上這事迎膜。” “怎么了浆兰?”我有些...
    開封第一講書人閱讀 163,105評論 0 353
  • 文/不壞的土叔 我叫張陵磕仅,是天一觀的道長珊豹。 經(jīng)常有香客問我,道長榕订,這世上最難降的妖魔是什么店茶? 我笑而不...
    開封第一講書人閱讀 58,242評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮劫恒,結(jié)果婚禮上贩幻,老公的妹妹穿的比我還像新娘。我一直安慰自己兼贸,他們只是感情好段直,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,269評論 6 389
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著溶诞,像睡著了一般鸯檬。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上螺垢,一...
    開封第一講書人閱讀 51,215評論 1 299
  • 那天喧务,我揣著相機(jī)與錄音,去河邊找鬼枉圃。 笑死功茴,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的孽亲。 我是一名探鬼主播坎穿,決...
    沈念sama閱讀 40,096評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼返劲!你這毒婦竟也來了玲昧?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,939評論 0 274
  • 序言:老撾萬榮一對情侶失蹤篮绿,失蹤者是張志新(化名)和其女友劉穎孵延,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體亲配,經(jīng)...
    沈念sama閱讀 45,354評論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡尘应,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,573評論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了吼虎。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片犬钢。...
    茶點(diǎn)故事閱讀 39,745評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖思灰,靈堂內(nèi)的尸體忽然破棺而出玷犹,到底是詐尸還是另有隱情,我是刑警寧澤官辈,帶...
    沈念sama閱讀 35,448評論 5 344
  • 正文 年R本政府宣布箱舞,位于F島的核電站,受9級特大地震影響拳亿,放射性物質(zhì)發(fā)生泄漏晴股。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,048評論 3 327
  • 文/蒙蒙 一肺魁、第九天 我趴在偏房一處隱蔽的房頂上張望电湘。 院中可真熱鬧,春花似錦鹅经、人聲如沸寂呛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,683評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽贷痪。三九已至,卻和暖如春蹦误,著一層夾襖步出監(jiān)牢的瞬間劫拢,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,838評論 1 269
  • 我被黑心中介騙來泰國打工强胰, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留舱沧,地道東北人。 一個月前我還...
    沈念sama閱讀 47,776評論 2 369
  • 正文 我出身青樓偶洋,卻偏偏與公主長得像熟吏,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子玄窝,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,652評論 2 354

推薦閱讀更多精彩內(nèi)容

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