天天看點

shell程式設計之變量詳解

shell屬于非類型的解釋型語言,在使用變量時不像C++、JAVA語言程式設計時需要事先聲明變量,shell給一個變量指派,實際上就是定義了變量,在Linux支援的所有shell中,都可以用指派符号“=”為變量指派,shell為弱類型語言,定義變量不需要聲明類型,如果在使用時需要明确變量的類型,可以使用declare指定類型,declare常見參數如下:

·□ +/-:“-”可用來指定變量的屬性,“+”為取消變量所設的屬性。

·□ -f:僅顯示函數。

·□ r:将變量設定為隻讀。

·□ x:指定的變量會成為環境變量,可供shell以外的程式來使用。

·□ i:指定類型為數值,字元串或運算式。

shell程式設計中變量分為3種:系統變量、環境變量、使用者變量,其中系統變量在對參數判斷和指令傳回值判斷時使用,而環境變量則主要是在程式運作時需要設定,使用者變量又稱為局部變量,多使用在shell腳本内部或者臨時局部。

shell變量名在定義時,首個字元必須為字母(a~z,A~Z),不能以數字開頭,中間不能有空格,可以使用下畫線“_”,不能使用“-”,也不能使用标點符号等。

例如定義變量A=123,定義這樣一個變量,A為變量名,123是變量的值,變量名有格式規範,變量的值可以随意指定。變量定義完成,如需要引用變量,可以使用$A。

var.sh腳本内容如下:

#!/bin/bash

#By author yunwei

A=123

echo “今天飯前為$A 斤”

執行該shell腳本,結果将會顯示 “今天飯前為123 斤”。shell常見的系統變量、環境變量、使用者變量詳解如下。

(1)shell程式設計常見系統變量如下:

·□ $0:目前腳本的名稱。

□ $n:目前腳本的第n個參數,n=1,2,…,9。

·□ $∗:目前腳本的所有參數(不包括程式本身)。

·□ $#:目前腳本的參數個數(不包括程式本身)。

·□ $?:指令或程式執行完後的狀态,傳回0表示執行成功。

·□ $$:程式本身的PID号。

(2)shell程式設計常見環境變量如下:

·□ PATH:指令所示路徑,以冒号為分割。

·□ HOME:列印使用者家目錄。

·□ SHELL:顯示目前shell類型。

·□ USER:列印目前使用者名。

·□ ID:列印目前使用者ID資訊。

·□ PWD:顯示目前所在路徑。

·□ TERM:列印目前終端類型。

·□ HOSTNAME:顯示目前主機名。

(3)shell程式設計使用者變量如下:

·□ A=jfedu.net:自定義變量A。

·□ N_SOFT=nginx-1.12.0.tar.gz:自定義變量N_SOFT。

·□ BACK_DIR=/data/backup/:自定義變量BACK_DIR。

·□ IP1=192.168.1.11:自定義變量IP1。

·□ IP2=192.168.1.12:自定義變量IP2。

建立echo列印菜單shell腳本,代如下:

#!/bin/bash

#auto install httpd

#By author yunwei

shell程式設計之變量詳解

運作腳本,執行結果如圖所示。

shell程式設計之變量詳解

繼續閱讀