Shell腳本1
一、shell腳本基礎
1.1shell的作用
(1)作用
Linux 系統中的Shell是一個特殊的應用程序,它介於操作系統內核與用戶之間,充當了一個「命令解釋器」的角色,負責接收用戶輸入的操作指令(命令)並進行解釋,將需要執行的操作傳遞給內核執行,並輸出執行結果。常見的 Shell 解釋器程序有很多種,使用不同的 Shell時,其內部指令、命令行提示符等方面會存在一些區別。通過/etc/shells文件可以了解當前系統所支持的 Shell 腳本種類。
(2)linux中常見的shell
- bash:基於gun的框架下發展的shell
- csh:類似c語言的shell
- tcsh:整合了csh提供了更多功能
- sh:已經被bash替換
- nologin:讓用戶無法登錄
- bash(/bin/bash):是目前大多數Linux 版本採用的默認shell
1.2什麼是shell腳本及其架構
(1)什麼是shell腳本
- 就是將命令按順序一一列出,最後自動執行
- 執行需要權限,也可以直接使用絕對路徑
- 腳本其實不複雜,通用腳本環境改變後依然可以使用的腳本
(2)shell腳本的構成
- 腳本申明(解釋器):第一行開頭「#!/bin/bash」,表示此行以下的代碼語句是通過/bin/bash程序來解釋執行。#!/bin/bash為默認的解釋器還有其他類型的解釋器,#!/bin/python,#!/bin/expect
- 注釋信息:以#開頭的語句表示為注釋信息
- 可執行語句:比如echo命令用於輸出「 」之間的字符串
1.3腳本執行邏輯及執行方式
(1)腳本執行邏輯
- 順序執行:程序按從上到下順序執行
- 選擇執行:程序執行過程中,根據條件的不同,進行選擇不同分支繼續執行
- 循環執行:程序執行過程中需要重複執行多次某段語句
(2)執行方式
- 指定路徑去執行文件(需要有執行權限)
- 指定解釋器去執行(不需要權限)
1.4腳本錯誤調試
腳本錯誤常見的有三種區別
- 語法錯誤,會導致後續的命令不繼續執行,可以用bash -n 檢查錯誤,提示的出錯行數不一定是準確的
- 命令錯誤,默認後續的命令還會繼續執行,用bash -n 無法檢查出來 ,可以使用 bash -x 進行觀察
- 邏輯錯誤:只能使用 bash -x 進行
二、重定向與管道符
2.1重定向
(1)交互式硬件設備
標準輸入:從該設備接收用戶輸入的數據
標準輸出:通過該設備向用戶輸出數據
標準錯誤:通過該設備報告執行出錯信息
(2)重定向的意思就是 ,不通過標準輸出到屏幕上,輸出到你指定的位置
2.2管道符
管道符(」|「):將左側的命令輸出結果,作為右側命令的輸入(處理對象)可以疊加使用