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管道符

管道符(」|「):將左側的命令輸出結果,作為右側命令的輸入(處理對象)可以疊加使用