1. 程式人生 > >shell腳本編程基礎篇

shell腳本編程基礎篇

vpd alt 變量命名 內存 格式 函數 直觀 進程 規則

一:程序概念
?程序:算法+數據結構
?數據:是程序的核心
?數據結構:數據在計算機中的類型和組織方式
?算法:處理數據的方式

程序編程風格:
過程式:以指令為中心,數據服務於指令
對象式:以數據為中心,指令服務於數據

高級編程語言:
編譯型:高級語言-->編譯器-->機器代碼-->執行
C,C++

解釋型:高級語言-->執行-->解釋器-->機器代碼
shell,python,php,JavaScript,perl

linux中的shell(bash)是一門過程式、解釋型的編程語言。

編譯型語言與解釋型語言執行過程的區別如下:
技術分享圖片


二:shell腳本基礎
★什麽是shell腳本?

答:shell腳本是 包含一些命令或聲明,並符合一定格式的文本文件,有一定的格式要求:首行shebang機制 如#!/bin/bash (說明這個腳本用什麽解釋器解釋執行),如果寫的是python腳本,剛可以#!/usr/bin/python,說明這個腳本用python解釋執行。

★腳本的執行方式及註意事項。
①:腳本的執行方式有多種分別如下。
?1:賦予腳本執行權限 chmod 755 +腳本,使用絕對路徑或者相對路徑執行
?2 :使用解釋器直接運行如:sh hello.sh 這種方式不需要賦予腳本執行權限。
?3: 使用 source 或者 . 來調用,這種方式是把腳本直接運行在當前shell進程 中,註這種方式的變量會直接在當前進程是生效。

② : 腳本應註意以下規範。
?程序名,避免更改文件名為無法找到正確的文件
?版本號
?更改後的時間
?作者相關信息
?該程序的作用,及註意事項
?最後是各版本的更新簡要說明

③:腳本調試方法。
? bash -n /opt/hello.sh 用於檢查腳本是否存在語法問題。
? bash -x /opt/hello.sh 把執行的過程顯示在屏幕,檢測腳本問題的時候常用。


三:變量的類型即變量的命名規則。
★什麽是變量?
答 :命名的內存空間。

★變量命名法則。
?不能使程序中的保留字:例如if, for。
?只能使用數字、字母及下劃線,且不能以數字開頭。
?見名知義。
?統一命名規則:駝峰命名法。

★bash中變量的類型。
?本地變量:生效範圍為當前shell進程中某代碼片斷,通常指函數。如name=fang
?位置變量:$1, $2, ...來表示,用於讓腳本在腳本代碼中調用通過命令行傳
遞給它的參數
?環境變量:生效範圍為當前shell進程及其子進程。(在當前進程中定義一個環境變量,在其父進程中並不生效哦)。
?特殊變量:$?, $0, $*, $@, $#,$$

?$?:上一個命令執行結果狀態碼,0表示上一個命令正常執行,負責上一個命令執行失敗,在腳本中常用。?$0:當前腳本的名稱。
?$*:當前腳本傳遞的所有參數。
?$#:當前腳本傳遞的總參數個數。
?$@:當前腳本傳遞的所有參數。
br/>?$0:當前腳本的名稱。
?$*:當前腳本傳遞的所有參數。
?$#:當前腳本傳遞的總參數個數。
?$@:當前腳本傳遞的所有參數。
技術分享圖片
$@與$ 的區別可以用循環的方式更直觀的展示。
技術分享圖片技術分享圖片
可以看$
是把所有的參數當成一個整體,而$@是單獨的一個參數。

shell腳本編程基礎篇