linux shell編程1 - 環境與變量

1. 本地變量
本地變量的生命週期是當前進程中有效,如果在shell中啓動令一個子進程或退出,此值無效。
var_name=value   #設置變量的值,返回var_name
var_name:=value  #如果如果沒有值,則設置其值,返回var_name
echo $var_name   #顯示變量
msg="Sorry this file does not exist ${name1}."#可以嵌套在字符串之中使用
unset var_name   #清除變量
set              #顯示所有的變量


2. 環境變量
環境變量可以用於所有的子進程。
實際上就是使用export把本地變量導出爲環境變量。注意子進程導出的環境變量不能用於父進程。
var_name=value
export var_name
echo $var_name   #其實所有的shell變量的訪問都是一樣的,可以是$var_name,還可以是${var_name}。
unset var_name   #清除變量
env              #顯示所有的環境變量


3. 參數變量
該變量是特殊變量,因爲她是隻讀。例如:$0,$1,$2,$3,......。
這些變量是用於向腳本傳遞參數的。第一個$0一般表示腳本名稱,其後的表示參數字。
其實在執行一個腳本時,首先輸入腳本名稱,然後輸入各個參數,而且都是以空格分開。

4. 特定變量
該變量是特殊變量,因爲她是隻讀。一共有7個:$#,$*,$$,$!,$@,$-,$?。
這些變量是用於保存腳本執行過程中的信息。
比如執行腳本:./m aa bb ccc
$# 爲3,表示傳遞到腳本的參數個數
$* 爲字符串“aa bb ccc” ,與位置變量不同,此參數參數個數可以超過9個
$$ 表示當前進程ID號
$! 表示後臺運行的最後一個進程的進程ID號
$@ 與$*相同,但是使用時加引號,並在引號中返回每個參數
$- 表示shell使用的當前選項,與set命令功能相同
$? 表示最後的退出狀態。0表示沒有錯誤,其它任何值表明有錯誤。





發佈了54 篇原創文章 · 獲贊 36 · 訪問量 9萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章