1. 程式人生 > >《shell編程實戰》第3章shell變量基礎(上)

《shell編程實戰》第3章shell變量基礎(上)

shell 老男孩 變量

1、什麽是shell變量
簡單地說,變量就是用一個固定的字符串代替更多更復雜的內容,該內容裏可能還會包含變量、路徑、字符串等其他的內容。變量是暫時存儲數據的地方及數據標記,所存儲的數據存在於內存空間中,通過正確地調用內存空間中變量的名字就可以取出與變量對應的數據。
意義:使用變量的最大好處就是使程序開發更為方便,當然,在編程中使用變量也是必須的,否則就很難完成相關的程序開發工作。
2、怎麽使用變量(賦值)
[root@thzzc1994 ~]# oldboy="I am oldboy"
[root@thzzc1994 ~]# echo $oldboy
I am oldboy
變量的內容一般要加雙引號,以防止出錯,特別是當值裏的內容之間有空格時。
3、變量類型
變量可分為兩類:環境變量(也叫全局變量)和普通變量(也叫局部變量)。
環境變量,在創建它們的shell及其派生出來的任意子進程shell中使用。環境變量可分為自定義的和bash內置的。
普通變量,只能在創建它們的shell函數或shell腳本中使用。普通變量一般由開發者在開發腳本程序時創建。
4、環境變量
環境變量可以在命令行中設置和創建,但用戶退出命令行時這些變量值就會丟失。
如果要永久保存環境變量,可在用戶家目錄下的.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)如果希望環境變量永久生效,則可以將其放在用戶環境變量文件或全局環境變量文件裏。
5、本地變量
本地變量在用戶當前shell生存期的腳本中使用。如果在shell中啟動另一個進程或退出,那麽變量的值將會無效。
定義本地變量的三種方法:
變量=value
變量=‘value‘
變量="value"
單引號‘‘、雙引號""和不加引號的區別
‘‘:所見即所得
"":解析變量值,再輸出
不加引號:解析變量值再輸出,但必須是連續的
綜上,一般建議使用雙引號,代替不加引號。
6、系統運行shell的三種方式:
(1)系統登錄默認shell
(2)非登錄交互式shell(比如bash、ssh)
(3)腳本執行非交互式shell
登錄式:/etc/profile=>/etc/profile.d=>/etc/sysconfig/i18n
非登錄式:~/.bashrc=>/etc/bashrc
7、命令定義變量
(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 CST

《shell編程實戰》第3章shell變量基礎(上)