一、什麼是shell變量
簡單地說,變量就是用一個固定的字符串代替更多更復雜的內容,該內容裏可能還會包含變量、路徑、字符串等其餘的內容。變量是暫時存儲數據的地方及數據標記,所存儲的數據存在於內存空間中,經過正確地調用內存空間中變量的名字就能夠取出與變量對應的數據。
意義:使用變量的最大好處就是使程序開發更爲方便,固然,在編程中使用變量也是必須的,不然就很難完成相關的程序開發工做。
二、怎麼使用變量(賦值)
[root@thzzc1994 ~]# oldboy="I am oldboy"
[root@thzzc1994 ~]# echo $oldboy
I am oldboy
變量的內容通常要加雙引號,以防止出錯,特別是當值裏的內容之間有空格時。
三、變量類型
變量可分爲兩類:環境變量(也叫全局變量)和普通變量(也叫局部變量)。
環境變量,在建立它們的shell及其派生出來的任意子進程shell中使用。環境變量可分爲自定義的和bash內置的。
普通變量,只能在建立它們的shell函數或shell腳本中使用。普通變量通常由開發者在開發腳本程序時建立。
四、環境變量
環境變量能夠在命令行中設置和建立,但用戶退出命令行時這些變量值就會丟失。
若是要永久保存環境變量,可在用戶家目錄下的.bash_profile或.bashrc中,或者全局配置/etc/bashrc或/etc/profile.d中定義。
有一些環境變量,好比HOME,PATH,SHELL,UID,USER等,在用戶登陸以前就已經被/bin/login程序定義好了。
一般環境變量被保存在~/.bash_profile或/etc/profile中。
設置環境變量的三種方法:
(1)export A=value
(2)declare -x A=value
(3)A=value;export A/;
設置環境變量永久生效的方法:
(1)用戶環境變量:~/.bashrc和~/.bash_profile
(2)全局環境變量:/etc/bashrc、/etc/profile和/etc/profile.d
提示:(1)書寫crond定時任務時要注意,腳本要用到的環境變量最好先在所執行的shell腳本中從新定義。
(2)若是但願環境變量永久生效,則能夠將其放在用戶環境變量文件或全局環境變量文件裏。
五、本地變量
本地變量在用戶當前shell生存期的腳本中使用。若是在shell中啓動另外一個進程或退出,那麼變量的值將會無效。
定義本地變量的三種方法:
變量=value
變量='value'
變量="value"
單引號''、雙引號""和不加引號的區別
'':所見即所得
"":解析變量值,再輸出
不加引號:解析變量值再輸出,但必須是連續的
綜上,通常建議使用雙引號,代替不加引號。
六、系統運行shell的三種方式:
(1)系統登陸默認shell
(2)非登陸交互式shell(好比bash、ssh)
(3)腳本執行非交互式shell
登陸式:/etc/profile=>/etc/profile.d=>/etc/sysconfig/i18n
非登陸式:~/.bashrc=>/etc/bashrc
七、命令定義變量
(1)date
[root@thzzc1994 ~]# time=date
[root@thzzc1994 ~]# echo $time
2018年 05月 01日 星期二 10:43:51 CST
(2)$(date) --推薦使用
[root@thzzc1994 ~]# time=$(date)
[root@thzzc1994 ~]# echo $time
2018年 05月 01日 星期二 10:44:04 CSTshell