Linux Shell指令碼系列教程(三):變數和環境變數_linux shell

來源:互聯網
上載者:User

一、玩轉變數和環境變數

變數是任何一種程式設計語言都必不可少的組成部分,用於存放各種類型的變數。指令碼語言大多是弱類型語言(動態語言),也就是說在使用變數時,不需要事先聲明變數的類型,只需要直接賦值就可以。在Bash中,每一個變數的值都是字串。無論你給變數賦值時有沒有使用引號,值都會以字串的形式儲存。有一些特殊的變數會被shell環境和作業系統保留,用來儲存一些特別的值,這類變數就稱為環境變數,相信大家對環境變數也並不陌生,因為即使在windows作業系統上,也存在環境變數。

二、普通變數

普通變數可以通過下列的方式進行賦值,並列印輸出:

複製代碼 代碼如下:

#var=value          #等式左邊是變數,右邊是將要賦給變數的值
var="value"         #聲明一個變數var,並將其賦值為“value”
echo $var           #使用echo輸出變數的值
echo ${var}         #作用同上一行

**注意:**var=value 不同於 var = value,前者是一個賦值運算式,而後者則是一個邏輯運算式,用來判斷等式兩端值是否相同。在賦值運算式中,如果value中沒有空白符,那麼就不必使用引號進行引用,否則必須使用單引號或者雙引號進行變數引用。例如:

複製代碼 代碼如下:

var1="value"            #不含空白符
echo $var1              #輸出“value”
var2="value 2"          #含空白欄框,使用引號
echo $var2              #輸出“value”
var3=value 2            #含空白符,不使用引號
echo var3               #在ubuntu14.04中,返回command not found

擷取字串的長度

字串的長度是字串極為重要的一個特徵,在shell中可以使用如下方法擷取字串的長度:

複製代碼 代碼如下:

var="value"
length=${#var}
echo $length            #此處將輸出7

三、環境變數

變數採用常見的命名方式進行命名。當程式啟動時,他接受一族環靜變數,可以使用env(eviroment)命令查看所有與終端相關的環境變數。對於進程來說,其運行時的環境變數可以用下面的命令來查看:

複製代碼 代碼如下:

cat /proc/$PID/environ      #PID總是一個整數
pgrep firefox               #我剛才的結果返回3013
cat /proc/3013/environ      #返回了一堆,不列出

HTTP_PROXY環境變數

環境變數通常不需要在當前進程中進行定義,而是從父進程中繼承而來的。HTTP_PROXY環境變數,它定義了互連網應該使用哪個Proxy 伺服器。該環境變數可以通過下列方法進行設定:

複製代碼 代碼如下:

HTTP_PROXY=192.168.1.23:3128
export HTTP_PROXY            #使用export來設定環境變數

PATH環境變數

在預設情況下,有很多標準環境變數可供shell使用,PATH便是其中之一。

複製代碼 代碼如下:

echo $PATH
ecport PATH="$PATH;/home/user/bin" #在PATH中添加一條新路徑

SHELL環境變數
使用SHELL環境變數可以識別當前所使用的shell版本,方法如下:
複製代碼 代碼如下:

echo $SHELL          #輸出shell的版本
echo $0              #作用同上

UID環境變數

UID是一個重要的環境變數,可以用於檢查當前指令碼是以超級使用者還是以普通使用者的身份啟動並執行。root使用者的UID是0。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.