爲何新建好的shell腳本不能直接執行: ~]xxxx.shshell
由於在bash中,命令的使用是 command options ,直接用~]xxx.sh,這個xxx.sh會被認爲成一個命令,而後bash去PATH中尋找解釋器,通常新建腳本的路徑不在PATH中,因此沒法直接執行,可使用./指定當前路徑來執行sh腳本,或者也能夠直接使用絕對路徑來執行sh腳本centos
介紹:數組
- Shell是一個用C語言編寫的程序,經過Shell用戶能夠訪問操做系統內核服務,相似於DOS下的command和後來的cmd.exe
- Shell既是一種命令語言,又是一種程序設計語言。做爲命令語言,它交互式地解釋和執行用戶輸入的命令;做爲程序設計語言,它定義了各類變量、參數、函數、流程控制等等。它調用了系統核心的大部分功能來執行程序、創建文件並以並行的方式協調各個程序的運行
- 編譯型\解釋性 編譯型語言 須要預先將咱們寫好的源代碼轉換成目標代碼,這個過程被稱做「編譯」。運行程序時,直接讀取目標代碼。因爲編譯後的目標代碼很是接近計算機底層,所以執行效率很高,這是編譯型語言的優勢 解釋型語言 也叫作腳本語言。執行這類程序時,解釋器須要讀取咱們編寫的源代碼,並將其轉換成目標代碼,再由計算機運行。由於每次執行程序都多了編譯的過程,所以效率有所降低
Shell腳本解釋器 cat /etc/shells
/bin/bash
bash因爲易用和免費,在平常工做中被普遍使用。同時,Bash也是大多數Linux系統默認的Shell腳本解釋器。bash
#變量 函數
#參數的傳遞 工具
#特殊字符 測試
#字符串 spa
#數組 操作系統
#運算符 原生bash不支持簡單的數學運算,能夠經過其餘命令來實現,例如 awk 和 expr,expr 最經常使用,expr 是一款表達式計算工具,使用它能完成表達式的求值操做。
設計
#流程控制
#函數
環境變量:
實現自增
示例:
測試命令:
查找centos用戶
shell中的測試類型
模式匹配
腳本的狀態返回值 默認的echo $? 輸出的就是命令執行狀態碼 文件測試
組合測試條件 
向腳本傳參 超過9以後 $(10) 一次日後推,使用shift能夠完成輪替,shift 1 表明提出第一個位置參數,
比較兩數大小
也能夠直接聲明