基礎(chǔ)規(guī)則-執(zhí)行腳本
#方法1 sh
[root@manager /server/scripts]# sh 2.3-1-exec.sh
tar: 從成員名中刪除開(kāi)頭的“/”
#方法2 .或source
[root@manager /server/scripts]# . 2.3-1-exec.sh
tar: 從成員名中刪除開(kāi)頭的“/”
#方法3 輸入重定向方法
[root@manager /server/scripts]# sh <2.3-1-exec.sh
tar: 從成員名中刪除開(kāi)頭的“/”
[root@manager /server/scripts]# ll /tmp/etc.tar.gz
-rw-r--r-- 1 root root 10246600 1月 8 10:51
/tmp/etc.tar.gz
#linux 支持 < 很多 tr xargs 三劍客
#方法4 絕對(duì)路徑方法
[root@manager /server/scripts]# ll /server/scripts/2.3-1-exec.sh
-rwxr-xr-x 1 root root 31 1月 8 10:50
/server/scripts/2.3-1-exec.sh
[root@manager /server/scripts]# /server/scripts/2.3-1exec.sh
tar: 從成員名中刪除開(kāi)頭的“/”
| 執(zhí)行方 法 | 應(yīng)用場(chǎng)景 |
|---|---|
| sh | 執(zhí)行各種命令 必備 |
| ./source | 在腳本中調(diào)用使用其他文件方法 在腳本中實(shí)現(xiàn)nginx include功能 , . /etc/init.d/fuctions 服務(wù)、命令檢查腳本中 |
| sh < | 幾乎不會(huì)用 |
| 絕對(duì)路徑 | 系統(tǒng)腳本 系統(tǒng)使用的腳本 需要+x權(quán)限 |
#./source 了解
[root@manager /server/scripts]# .
/etc/init.d/functions
[root@manager /server/scripts]# action "crond is running" /bin/true crond is running [ 確定 ]
[root@manager /server/scripts]# action "crond is not running" /bin/false crond is not running [失敗]
書(shū)寫(xiě)shell腳本的習(xí)慣
- 運(yùn)維對(duì)我們平時(shí)操作的習(xí)慣,有比較高的要求 rm
- 書(shū)寫(xiě)腳本 加上命令解釋器 #!、bin/bash 腳本默認(rèn)使用的命令解釋器
-
! 幻數(shù)
-
[root@manager /server/scripts]# head -1 /bin/yum
#!/usr/bin/python
[root@manager /server/scripts]# file 2.3-2-checkweb.sh
3-2-check-web.sh: UTF-8 Unicode text
[root@manager /server/scripts]#
[root@manager /server/scripts]# file 2.3-2-checkweb.sh
2.3-2-check-web.sh: Bourne-Again shell script, UTF-8 Unicode text executable
- 加上版權(quán)信息:腳本作者 版本 時(shí)間
- 英文符號(hào)
- 書(shū)寫(xiě)成對(duì)的符號(hào) ' ' " " $() () [ ] { }
shell變量
- 普通變量(局部變量)
- 環(huán)境變量(全局變量)
- 特殊變量
- *普通變量
- 變量
*存放我們經(jīng)常使用的內(nèi)容
*本質(zhì): 內(nèi)存中的空間- 空間的位置 變量名
- 看見(jiàn)的內(nèi)容 變量值
x + y =10 已知x=30 問(wèn) y=? 未知數(shù)
oldboy=666 #創(chuàng)建
echo $oldboy #使用 引用
- 變量的命名規(guī)則:
- 不能數(shù)字開(kāi)頭 最好也不要包含特殊符號(hào)!最好用_下劃線(xiàn)
- 命名規(guī)律:推薦多個(gè)單詞通過(guò)下劃線(xiàn)連接(表名變量的作用)bingbing_age=16
- 駝峰寫(xiě)法:多個(gè)單詞從第2個(gè)單詞開(kāi)始 首字母大寫(xiě) LidaoAge=99
numberOfpeople=61 - 變量賦值注意事項(xiàng):
[root@manager /server/scripts]# oldbing=666
[root@manager /server/scripts]# echo $oldbing 666
[root@manager /server/scripts]# oldbing=愛(ài)生活 愛(ài)冰冰
-bash: 愛(ài)冰冰: 未找到命令
[root@manager /server/scripts]# oldbing="愛(ài)生活 愛(ài)冰冰"
[root@manager /server/scripts]# echo $oldbing
愛(ài)生活 愛(ài)冰冰
| 引號(hào) | 含義 |
|---|---|
| 單引號(hào) | 所見(jiàn)即所得 單引號(hào)里面內(nèi)容 原封不動(dòng)輸出 |
| 雙引號(hào) | 與單引號(hào)類(lèi)似 解析特殊符號(hào) `` $() ! |
| 不加引號(hào) | 與雙引號(hào)類(lèi)似 支持通配符 * {} *.txt |
| 反引號(hào) | 優(yōu)先執(zhí)行命令 |
[root@manager ~]# echo '$PATH $(hostname) `whoami` {1..5}'
$PATH $(hostname) `whoami` {1..5}
[root@manager ~]# echo "$PATH $(hostname) `whoami` {1..5}" /sbin:/usr/sbin:/bin:/usr/bin manager root {1..5}
[root@manager ~]# echo $PATH $(hostname) `whoami` {1..5} /sbin:/usr/sbin:/bin:/usr/bin manager root 1 2 3 4 5