shell編程(一)---變數

來源:互聯網
上載者:User

標籤:env   變數   變數類型   printenv   

變數是記憶體空間,通過變數名引用變數的時候,稱為命名的記憶體空間。

定義一個變數,就是給變數分配一段編址的記憶體空間,給變數賦值,就是往記憶體空間裡面填充資料。


變數類型:事先定義好資料的儲存格式和長度。不同的資料類型所佔用的儲存空間和儲存格式也不一樣。

變數類型如:

字元類型。數實值型別。分為整型、浮點型日期和時間型。布爾型。


邏輯運算:與(and)、或(or)、非

and:&&    只要有一個為假,結果就為假。只有兩者都為真,結果才為真。or:||     只要有一個為真,結果就為真。只有兩者都為假,結果才為假。非:!


變數賦值方法:VAR_NAME=VAULE


BASH變數類型

注意:1.指令碼在執行時,會在當前shell下啟動一個子shell進程。2.命令列中啟動的指令碼會繼承當前shell的環境變數。3.系統自動啟動的指令碼(非命令列啟動)就需要自我定義各種所需要的環境變數。

環境變數:聲明環境變數的格式export VARNAME=VALUE範圍:當前shell進程及其子進程。

本地變數:聲明本地變數的格式VARNAME=VALUE。範圍:對整個指令碼進程或整個bash進程有效。

局部變數:聲明局部鏈路的格式local VARNAME=VALUE。範圍:只對當前的程式碼片段有效。

位置變數:$n,第n個位置變數,引用指令碼中參數的位置的。如果n大於10,則要寫成${n}

特殊變數:bash內建的變數。如$?,儲存的是上一個命令的執行狀態傳回值(範圍是0-255),如果是0,則表示正確執行,如果是非0,則表示執行失敗。1,2,127為系統預留。其他值則可以使用者自已定義。


引用變數:${var_name},如果不至於引起變數名混淆的,{}可以省略。

樣本:

[[email protected] ~]# ANIMAL=tiger[[email protected] ~]# echo "There is a $ANIMAL"There is a tiger[[email protected] ~]# echo "There is a ${ANIMAL}"There is a tiger[[email protected] ~]# echo "There are some $ANIMALs"There are some [[email protected] ~]# echo "There are some ${ANIMAL}s"There are some tigers[[email protected] ~]#


環境變數:

樣本

[[email protected] ~]# NAME=frame[[email protected] ~]# export NAME[[email protected] ~]# echo $NAMEframe[[email protected] ~]# bash[[email protected] ~]# echo $NAMEframe[[email protected] ~]#
取消變數:unset 變數名


樣本:

[[email protected] ~]# echo $NAMEframe[[email protected] ~]# unset NAME[[email protected] ~]# echo $NAME[[email protected] ~]#
查看shell中的變數:(包括環境變數和本地變數)set查看當前shell中的環境變數:printenvenvexport


增加變數的內容:

樣本1:

[[email protected] ~]# ANIMALS=pig[[email protected] ~]# echo $ANIMALSpig[[email protected] ~]# ANIMALS=$ANIMALS:tiger[[email protected] ~]# echo $ANIMALSpig:tiger[[email protected] ~]# ANIMALS=$ANIMALS:sheep[[email protected] ~]# echo $ANIMALSpig:tiger:sheep[[email protected] ~]#


樣本2:

[[email protected] ~]# echo $PATH/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin[[email protected] ~]# PATH=$PATH:/tmp[[email protected] ~]# echo $PATH/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp[[email protected] ~]# PATH=/home:$PATH[[email protected] ~]# echo $PATH/home:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin:/tmp[[email protected] ~]# 說明:PATH為變數名稱,$PATH為引用PATH變數的內容。


變數定義規則:

1.不能和系統中的環境變數重名。

2.變數名只能包含字母、數字、底線,且不能以數字開始。

3.最好做到見名知意。


本文出自 “HeZhang” 部落格,請務必保留此出處http://hezhang.blog.51cto.com/1347601/1435278

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.