首頁 >運維 >linux運維 >Linux運維之shell變數.md

Linux運維之shell變數.md

齐天大圣
齐天大圣原創
2020-06-24 09:30:142081瀏覽

我們知道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

變數的設定規則,

变量名=变量内容

  • 注意"="兩邊都不能有空格

  • ##變數名稱只能是字母和數字,另外首個字不能是數字
  • 變數內容若有空格,需要使用引號(單引號、雙引號)將變數內容闊起來,如name=" lebron james"。雙引號裡可以解析變數。
  • 若有特殊字符,可以使用\來轉義,如enter、'、」等特殊字符
  • 如想使用指令結果作為變數內容,可以使用$(指令)或指令;
  • 若想擴充變數內容,可以使用"{$變數}累積內容"

#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[数组下标]}

列印陣列的部分元素${lnmp[@]:n1:n2}

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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn