標籤: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