您好,登錄后才能下訂單哦!
bash的腳本初步
shell腳本:另外一種歷史命令的保持形式;
shell腳本編程:
什么叫編程?
編寫(xiě)程序源代碼。
為了能夠讓用戶(hù)在使用計(jì)算機(jī)的時(shí)候,可以讓計(jì)算機(jī)以非交互式的方式完成某些任務(wù),需要將這些任務(wù)編制稱(chēng)為一個(gè)文件,讓計(jì)算機(jī)順序讀取,從而實(shí)現(xiàn)功能;
編程語(yǔ)言:
高級(jí)語(yǔ)言:
根據(jù)源代碼的處理方式:
編譯運(yùn)行語(yǔ)言:
源代碼 --> 編譯器(編譯)--> 匯編器(匯編)--> 鏈接器(庫(kù)的鏈接)--> 可以直接執(zhí)行的二進(jìn)制文件;
解釋運(yùn)行語(yǔ)言:
源代碼 --> 直接啟動(dòng)跟源代碼對(duì)應(yīng)的解釋器程序,由解釋器邊解釋邊執(zhí)行;
根據(jù)其編程過(guò)程中的功能的實(shí)現(xiàn)是調(diào)用庫(kù)還是調(diào)用外部程序文件:
完整編程語(yǔ)言:
利用庫(kù)或編程組件進(jìn)程編程;
腳本程序語(yǔ)言:
解釋器
shell腳本:調(diào)用shell程序,其次調(diào)用需要的外部命令文件;命令解釋器
shell提供了單一功能的編程接口:過(guò)程式編程邏輯的支持;
根據(jù)程序的編寫(xiě)模式:程序=指令+數(shù)據(jù)
過(guò)程式編程語(yǔ)言:
以指令為中心,圍繞指令(算法)的實(shí)現(xiàn)設(shè)計(jì)數(shù)據(jù)和數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)為指令服務(wù)器的;
算發(fā)或指令的實(shí)現(xiàn)形式:
順序執(zhí)行
選擇執(zhí)行
循環(huán)執(zhí)行
對(duì)象式編程語(yǔ)言:
以數(shù)據(jù)為中心,將數(shù)據(jù)實(shí)例化為類(lèi),圍繞著數(shù)據(jù)的需求來(lái)部署指令
類(lèi)、屬性、方法
低級(jí)語(yǔ)言:
匯編語(yǔ)言:
shell腳本編程
過(guò)程式編程語(yǔ)言,解釋運(yùn)行,依賴(lài)于外部程序文件運(yùn)行;
shell腳本到底是什么?
1.純文本文檔——文件中所儲(chǔ)存的數(shù)據(jù)都是以字符為單位進(jìn)行存儲(chǔ)的;
2.根據(jù)用戶(hù)的需求來(lái)解決用戶(hù)問(wèn)題的大量命令的組合體;
3.“執(zhí)行冪等性”——任何命令多次執(zhí)行的結(jié)果是一致的;
很多命令都不具備“執(zhí)行冪等性”,在shell腳本中就需要使用大量的程序邏輯來(lái)判斷某個(gè)命令是否滿(mǎn)足其運(yùn)行條件,以避免在運(yùn)行過(guò)程中出現(xiàn)嚴(yán)重錯(cuò)誤;
shell腳本中的代碼內(nèi)容
1.首行必須是shebang,解釋器路徑,必須占據(jù)絕對(duì)行首;在執(zhí)行時(shí),啟動(dòng)相應(yīng)的解釋器以解釋腳本內(nèi)諸多的命令;
#!/bing/bash
#!/bing/sh
#!/usr/bin/python
#!/usr/bin/per1
2.在shell腳本中,除了shebang之外,以#占據(jù)絕對(duì)行首的內(nèi)容,均為注釋行;解釋器會(huì)忽略這樣的行的內(nèi)容;
3.解釋會(huì)忽略腳本中所有的空白行;
4.大量的命令和關(guān)鍵字(if,else,then,do,while,for,...)
注意:shell腳本一旦運(yùn)行,是在當(dāng)前shell中根據(jù)shebang的指示,開(kāi)啟一個(gè)解釋器(子shell)解釋執(zhí)行代碼內(nèi)容,shell腳本的內(nèi)容是在一個(gè)子shell進(jìn)程中實(shí)現(xiàn)的;
我們可以利用文本編輯工具來(lái)編寫(xiě)shell腳本;
nano、vi、vim、emacs、pico
推薦使用vim
約定下,腳本文件名的后綴為.sh,也可以不加;
腳本的運(yùn)行方法:
1.為腳本文件賦予執(zhí)行權(quán)限,直接運(yùn)行此文件;
chmod +x /path/to/script_file
~]# /path/to/script_file
如果在執(zhí)行腳本時(shí),只寫(xiě)腳本文件名不給出路徑的話(huà),必須確保path變量中保存的路徑下,能找到該腳本文件;
2.直接使用解釋器運(yùn)行腳本,將腳本作為解釋器命令的參數(shù);
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。