- 一、變量賦值等:
- ${parameter:-word}:若是parameter爲空或未定義,則變量展開爲「word」;不然,展開爲parameter的值;
- 如:
- ${parameter:+word}:若是parameter爲空或未定義,不作任何操做;不然,則展開爲「word」值;
- 如:
- ${parameter:=word}:若是parameter爲空或未定義,則變量展開爲「word」,並將展開後的值賦值給parameter;
- 如:
- ${parameter:offset:length}:取子串,從offset處的後一個字符開始,取lenth長的子串;
- 如:
- 二、腳本配置文件
- /etc/rc.d/init.d/服務腳本
- 服務腳本支持配置文件:/etc/sysconfig/服務腳本同名的配置文件
- 怎麼樣讓腳本的配置文件生效呢,那咱們就舉一個例子吧。咱們先建立一個腳本wang.sh
- 如:
- 若是配置文件中沒有給出變量值你也能夠利用上面的變量賦值給它一個初始值,只需腳本中添加一項便可:
- 如:
- 而後再把配置文件中的變量取空測試結果以下:
- 三、局部變量
- 變量在腳本中有可能重名,在一個腳本中如函數變量和全局變量重名了怎麼辦?那麼這裏就要用到局部變量了,下面就讓咱們用一個例子來解釋一下吧。編輯一個名爲b.sh的腳本,內容以下:
- 執行結果:
- 從圖中的結果來看上面的函數中的變量影響到了下面的執行結果,因此爲了不形成這樣的影響只需給函數定義局部變量便可 圖像 132
- 執行結果:
- 四、命令mktemp用於建立臨時文件或目錄,爲了避免讓臨時文件或目錄重名能夠在執行命令時在後面加上.XX(大寫),XX是系統給生成的隨機數。
- 格式:
- mktemp /temp/file.XX 臨時文件
- mktemp -d /temp/file.XX 臨時目錄
- 可是爲了便於咱們使用把文件路徑保存在變量中便可。
- 五、重要的信號
- 1:SIGHUP ###重要的信號:讓一個進程不用重啓,就能夠重讀其配置文件,並讓新的配置信息生效;
- 2:SIGINT ### 等於快捷鍵Ctrl+c:中斷一個進程
- 9:SIGKILL ###殺死一個進程
- 15:SIGTERM ###終止一個進程,默認信號
- 指定一個信號的方法:
- 信號號碼; kill 1
- 信號名稱:kill SIGILL
- 信號名稱簡寫:kill KILL
- 六、一行執行多個語句,語句間用分號分隔
- 七、Shell條件判斷
- -eq: 測試兩個整數是否相等;相等爲真,不等爲假;
- -ne: 測試兩個整數是否不等;不等,爲真;相等,爲假;
- -lt: 測試一個數是否小於另外一個數;小於,爲真;不然,爲假;
- -le:測試一個數是否小於或等於另外一個數,小於和等於爲真,不然爲假;
- -gt: 測試一個數是否大於另外一個數;大於,爲真;不然,爲假;
- -ge: 測試一個數是否大於或等於另外一個數,大於或等於爲真,不然爲假;
- 格式如:
- [ A -eq B ] 若A等於B,則爲真
- [ A -ne B ] 若A不等於B,則爲真
- [ A -lt B ] 若A小於B,則爲真
- [ A -le B ] 若A小於等於B,則爲真
- [ A -gt B ] 若A大於B,則爲真
- [ A -ge B ] 若A大於等於B,則爲真
- 八、shell中如何進行算術運算:
- 如: A=3
- B=6
- 一、let 算術運算表達式 let C=$A+$B
- [root@localhost ~]# let C=$A+$B
- [root@localhost ~]# echo $C
- 9
- 二、$[算術運算表達式] let D=$[$A+$B]
- [root@localhost ~]# let D=$[$A+$B]
- [root@localhost ~]# echo $D
- 9
- 三、$((算術運算表達式)) let E=$(($A+$B))
- [root@localhost ~]# let E=$(($A+$B))
- [root@localhost ~]# echo $E
- 9
- 四、expr 算術運算表達式,表達式中各操做數及運算符之間要有空格,並且要使用命令引用
- F=`expr $A + $B`
- [root@localhost ~]# F=`expr $A + $B`
- [root@localhost ~]# echo $F
- 9