相信很多同學都不陌生這個腳本,尤其是運維的同學,少不了吧。公司的運維系統就靠你了。shell是一種解釋型的語言,我們寫好了代碼後,不需要編譯,直接運作即可。平時我們會用它來寫一些腳本,比如備份,或者啟動腳本,切割日志等。當然shell也是linux的解釋器,本篇我們先來了解下這個解釋器。
shell解釋器
shell也叫殼,差別與作業系統核心。比如一個不同國家的人交流需要一個翻譯官,那麼shell就是這個翻譯官。shell是負責使用者,負責接受使用者的指令,解釋并運作,将需要執行的操作給操作核心。
shell的常見種類
sh
由 Bourne shell 開發,為了紀念大佬,就用了他的名字命名了。sh也是第一個流行的shell。
csh
C shell 文法和C語言比較類似。
ksh
集合了 csh 和 sh 的優點,并且和sh相容。
bash
與sh完全相容,sh的的擴充版本,在sh上增加了新特性,補全指令,指令編輯器和曆史指令等功能也是linux預設的shell。
zsh
內建了bash,ksh等優點,使得互動式的操作更加友善。小編用的也是zsh。
linux預設的shell解釋器
linux 預設的 shell 解釋器是bash,在/bin目錄下。
➜ ~ ll /bin/bash
-rwxr-xr-x 1 root root 939K 9月 7 2017 /bin/bash
編寫一個shell腳本
一般來說,shell腳本的程式一般用.sh結尾。編寫一個hello.sh
#!/bin/bash
echo "hello world!"
~
複制
#!/bin/bash : 指定腳本使用的指令解釋器。
echo "hello world!" 内容列印一個hello world! 。
➜ test ls
hello.sh
複制
執行腳本:
➜ test chmod +x hello.sh
➜ test ./hello.sh
hello world!
複制
chmod +x hello.sh 給腳本加可執行權限
./hello.sh 執行hello.sh
另外也可以用以下幾種方式執行(可以沒有可執行權限) 編寫一個新的腳本,不添加可執行權限。
➜ test bash t.sh
bash!
➜ test sh t.sh
bash!
➜ test source t.sh
bash!
複制
shell執行順序
從上到下, 從左到右 。