1編程基礎
程序:指令+數據
程序編程分格:
過程式:以指令為中心,數據服務于指令
對象式:以數據為中心,指令服務于數據
Shell程序:提供了編程能力,解釋執行
程序的執行方式
計算機:運行二進制指令
編程語言:
低級:匯編
高級:編譯:高級語言->編譯器->目標代碼
編譯性語言編寫的程序通常是需要通過編譯器去轉換成計算機可以識別的二進制文件,并且是一個獨立的文件,然后再去運行,像?java,C#等
解釋:高級語言->解釋器->機器代碼
像shell這種就是解釋性語言,它可以把編寫好的文本直接拿來運行,在運行時,后臺的shell編譯器會臨時的將文本文件解釋成機器代碼,不會生成獨立二進制文件,它是放在內存中的 還有像Perl,Python也是解釋性語言
編程基本概念
編程邏輯處理方式:
順序執行 多個命令順序執行
循環執行 為了滿足某種條件我們需要命令的循環執行像創建多個賬號,復制或打印多個文件等
選擇執行 滿足各種不同的條件去執行不同的命令
Shell編程:過程式,解釋執行
編程語言的基本結構:
各種系統命令的組合
數據存儲:變量,數組
表達式:a+b
語句:if
2,?Shell腳本基礎
Shell腳本:
包含一些命令或申明,并符合一定的文本文件
格式要求:首行shebang機制
#!/bin/bash
#!/user/bin/Python
#!/user/bin/Perl
Shell腳本的用途有:
自動化常用命令
執行系統管理和故障排除
創建簡單的應用程序
處理文本或文件
創建shell腳本
第一步:使用文本編輯器來創建文本文件
第一行必須包括shell聲明序列:#
#!/bin/bash
添加注釋
注釋以#開頭
第二步:運行腳本
給予執行權限,在命令上指定腳本的絕對火相對路徑
直接運行解釋器,將腳本作為解釋器的程序的參數運行
腳本規范
腳本代碼開頭約定
1 第一行一般為調用使用的語言
2 程序名,避免更改文件名而無法找到正確的文件
3 版本號
4更改后的時間
5作者相關信息
6 改程序的作用,及注意事項
7 最后是各版本的更新簡要說明
腳本的基本結構
#!SHEBANG
CONFIGUrATION_VARIABLES??變量
FUNCTION_DEFINITIONS ?????函數
MAIN_CODE ????????????????其它指令
腳本調試
檢測腳本中的語法錯誤
bash -n
調試執行
bash -x
3?變量
變量:命名的內存空間
數據存儲方式:
字符:
數值:整型,浮點數
變量:變量類型
作用:1?數據存儲格式
2 參與的運算
3 表示的數據范圍
類型:字符
數值:整型,浮點數
強類型:變量不經過強制轉換,它永遠是這個數據類型,許隱式的類型轉換,一般定義變量時必須指定類型,參與必須符合類型要求;調用為聲明變量會產生錯誤
如 java, c#
弱類型:語言的運行時會隱式做數據類型轉換,無需指定,默認均為字符型;參與運算會自動進行隱式類型轉換;無需事先定義可直接調用
如:bash?不支持浮點數,php
變量命名法則:
1 不能使用程序中的關鍵字
2 只能使用數字,字母及下劃線,且不能以數字開頭
3 見名知義
4 統一命名規則:駝峰法
局部變量
變量賦值:name=’value’ ?變量的值建議用引號 以防值之間有空格被誤認為命令而報錯
可以使用引用value
1可以是直接字符串:name=“root”
2變量引用:name=“$USER”
3命令引用:name=`command` name=$(command)
變量引用:${name} ?$name
“” :弱引用,其中的變量引用會被替換為變量值
‘ ’:強引用,其中的變量引用不會被替換為變量值,而保持原字符串
顯示已定義的所有變量:set
刪除變量:unset?name 建議不用的變量及時刪除,使之釋放空間
本文來自投稿,不代表Linux運維部落立場,如若轉載,請注明出處:http://www.www58058.com/89012