我們知道shell裡面有許多變量,例如我們常會用到的PATH變量,它的作用就是,它的作用是設定可執行檔的目錄,這樣輸入指令的時候就不用使用絕對路徑了。除此之外,shell還有許多其他的變數。今天,來跟大家討論下shell變數。
分類
我們知道,php裡面有局部變數和全域變數的區分,shell裡面和php非常類型,有環境變數、普通變數。環境變數一般用於定義shell的運作環境,而普通變數則常用於編寫shell腳本中。
環境變數和普通變數的差異是和php的變數非常類似:差異都是使用範圍的不同,shell的環境變數可以在目前shell以及衍生的shell的使用,而普通變數只能在目前shell使用。環境變數通常使用大寫,普通變數通常使用小寫。
環境變數
查看目前所有的環境變量,使用env(environment)指令即可
# env XDG_SESSION_ID=38135 HOSTNAME=iz8vb626ci0aehwsivxaydz TERM=xterm SHELL=/bin/bash HISTSIZE=1000 SSH_CLIENT=114.106.186.229 31955 22 QTDIR=/usr/lib64/qt-3.3 ……
另外還可以用set指令來查看,但是該指令會列出所有環境變數以及普通變數。一般的,環境變數都會使用大寫的字母來表示。
設定及取消環境變數
使用者自訂設定環境變數的方式如下
export 变量名=变量值
如想取消環境變數,則可以使用unset指令來完成
unset 变量名
下面來示範:
# export HOBBY=basketball # env | grep HOBBY HOBBY=basketball # unset HOBBY # env | grep HOBBY
##變數的列印與設定
linux下有一個echo指令,使用方法和php是一樣的,都是用來列印一段文字。# echo hello,world hello,world # echo -e "$PWD\n$PATH" /root /usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
变量名=变量内容
#array和php一樣,shell變數也有陣列型別。陣列的定義語法如下:
变量名=(val1 val2 ... valn); arr=(paul james durant)
列印陣列元素語法如下
echo ${arr[元素下标]} # echo ${arr[0]} paul # echo ${arr[1]} james
列印陣列所有的元素
echo ${arr[@]}
列印陣列的長度
echo ${#arr[@]}
列印陣列元素的長度
echo ${#arr[数组下标]}
n1表示開始,n2表示長度# 打印所有元素
# echo ${lnmp[@]}
linux nginx mysql php
# echo ${lnmp[@]:0}
linux nginx mysql php
# 打印从第二个元素开始的所有值
# echo ${lnmp[@]:1}
nginx mysql php
# 打印第一个值和第二个值
# echo ${lnmp[@]:0:2}
linux nginx
# 打印第二个值和第三个值
# echo ${lnmp[@]:1:2}
nginx mysql
##
#追加元素 # lnmp[${#lnmp[@]}]=apache # echo ${lnmp[@]} linux nginx mysql php apache # 修改元素 # lnmp[0]=l # echo ${lnmp[@]} linux nginx mysql php # 删除元素 unset lnmp[0] unset lnmp[1] unset lnmp
以上是Linux運維之shell變數.md的詳細內容。更多資訊請關注PHP中文網其他相關文章!