文章出處

變量:(大的分為環境變量與本的變量)

本地變量

本地變量在用戶現在的shell生命期的腳本中使用。例如,本地變量file-name="loop.doc",這個值只在用戶當前shell生命期有意義。
如果在shell中啟動另一個進程或退出,此值將無效。這個方法的優點就是用戶不能對其他的shell或進程設置此變量有效。
即只在當前shell中定義的變量。
shell變量:定制用戶本身的工作環境。使用變量可以保存有用信息,使系統獲知用戶相關設置。如:EDITOR之類在.profile中定義的變量

顯示變量:echo ${file-name} #.{}為非必須
清除變量:unset file-name
查看所有變量:set
variable-name:-value - 當variable-name沒有設置時取value的值,否則取variable-name的值,不會將alue傳給variable-name
variable-name:=value - 當variable-name沒有設置時將value的值賦給variable-name
variable-name:?"variable not set" - 當variable-name沒有設置時,顯示未定義的用戶錯誤信息,錯誤提示可以自己定義
設置變量只讀:readonly variable-name
查看所有只讀變量:readonly

環境變量
環境變量用于所有用戶進程(經常稱為子進程) 。登錄進程稱為父進程。shell中執行的用
戶進程均稱為子進程。不像本地變量(只用于現在的shell)環境變量可用于所有子進程,這
包括編輯器、腳本和應用。

環境變量的設置:(環境變量一般大寫)
TEST_VAR=value;export value
或者
TEST_VAR=value
export value
或者
export TEST_VAR=value

本的變量或者環境變量如果長期使用都可以寫在.profile或者/etc/profile中以方便當另一個shell使用時設置初始值。
每個shell對變量的更改是不影響另一個shell的。
查看所有環境變量:env、export
清除環境變量:unset varibale_name ,清除環境變量以后,該環境變量對接下來的子進程均無效了

嵌入shell變量:Brourne shell 有一些預留的環境變量名,這些變量名不能用作其他用途。
嵌入shell變量列表:
CDPATH - 作用于cd命令,如果設置了CDPATH,當執行cd命令時,會首先從CDPATH下查找,如果沒有再查找當前目錄,多個路徑用:隔開(:/home/test:/home/tiny/bin)
EXINIT - vi編輯器的初始化選項
HOME - 定位于passwd的倒數第二列的值
IFS - 指定shell缺省的分隔符,在分隔文件或變量中各域時很有用。
LOGNAME - 登錄名
MAIL - MAIL變量保存郵箱路徑名
MAILCHECK -缺省每6 0 s檢查新郵件,但如果不想如此頻繁檢查新郵件,比如設為每 2 m,
MAILPATH - 如果有多個郵箱要用到MAILPATH,此變量設置將覆蓋MAIL設置。
PATH - PATH變量保存進行命令或腳本查找的目錄順序,正確排列這個次序很重要,可以在執行命令時節省時間
PS1 - 基本提示符包含shell提示符,缺省對超級用戶為 #,其他為$
PS2 - P S 2為附屬提示符,缺省為符號>
SHELL - SHELL變量保存缺省shell,通常在/etc/passwd中已設置
TERMINFO - 終端初始化變量保存終端配置文件的位置
ERM - TERM變量保存終端類型
TZ - 時區變量保存時區值,只有系統管理員才可以更改此設置
其他一些默認缺省的:
EDITOR
PWD
MANPAGE
PAGER
LPDEST/PRINTER

將變量導出到子進程:export
在腳本a中:father=script1;export father
在腳本b中:echo $father
當在a中調用b時(b是a創建的子進程),如果沒有沒有export father則將輸出空值,否則輸出script1


兩種特殊的只讀變量:
位置變量:(參數位置),目前最多$0~$9,$0是腳本本身名字,其余依次是腳本的參數
特定變量
$# 傳遞到腳本的參數個數
$@ 與$#相同,但是使用時加引號,并在引號中返回每個參數
$* 以一個單字符串顯示所有向腳本傳遞的參數。與位置變量不同,此選項參數可超過 9個
$$ 腳本運行的當前進程I D號
$! 后臺運行的最后一個進程的進程I D號
$- 顯示s h e l l使用的當前選項,與s e t命令功能相同
$? 顯示最后命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。


文章列表




Avast logo

Avast 防毒軟體已檢查此封電子郵件的病毒。
www.avast.com


arrow
arrow
    全站熱搜
    創作者介紹
    創作者 大師兄 的頭像
    大師兄

    IT工程師數位筆記本

    大師兄 發表在 痞客邦 留言(0) 人氣()