日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

bash特性以及shell脚本简介

發布時間:2024/9/21 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 bash特性以及shell脚本简介 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

bash的特性之多命令執行的邏輯關系:
1.命令替換
COMMAND1 $(COMMAND2)
2.管道
COMMAND1 | COMMAND2 | COMMAND3 ...
3.順序執行結構
COMMAND1 ; COMMAND2 ; COMMAND3 ...
4.選擇執行結構:
如果...那么...
要么...要么...
邏輯運算:
與:邏輯乘法,1--真,0--假,&&,雙目操作符
1 && 1 = 1
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0

"與"運算的短路運算法則:只要第一個操作數為false,則其邏輯運算結果一定為false;或:邏輯加法,1--真,0--假,||,雙目操作符1 || 1 = 11 || 0 = 10 || 1 = 10 || 0 = 0"或"運算的短路運算法則:只要第一個操作數為true,則其邏輯運算結果一定為true;非:邏輯取反,1--真,0--假,!,單目操作符!0 = 1!1 = 0命令的執行狀態返回值:SUCCESS:0--TURE(true)FAILURE:1-255--FALSE(false)COMMAND1 && COMMAND2表示:1.如果COMMAND1能夠成功執行,那么將會執行COMMAND2;2.如果COMMAND1執行失敗,那么COMMAND2將不會被執行;COMMAND1 || COMMAND2表示:1.只有COMMAND1執行失敗,COMMAND2才會被執行;2.如果COMMAND1執行成功,那么COMMAND2就不會被執行;!COMMADN1 && COMMAND2 相當于 COMMAND1 || COMMAND2!COMMAND1 || COMMAND2 相當于 COMMAND1 && COMMAND2德·摩根定律!(COMMAND1 && COMMAND2) || COMMAND3!(COMMAND1 || COMMAND2) && COMMAND3!A && B = A || B!A || B = A && B!(A && B) = !A || !B!(A || B) = !A && !B三種邏輯運算的優先級:!>&&>||示例:如果用戶user4存在并且其家目錄也存在,那么就執行userdel -r user4命令;id user4 && ls -d /home/user4 && userdel -r user4

bash腳本編程:
什么叫編程?
使用人類自然語言或機器語言進行程序源代碼書寫的過程。

為什么要編程?為了能夠讓用戶在使用計算機的時候,可以讓計算機以非交互的方式完成某些任務;此時,用戶需要將此類任務編輯稱為一個文件,并且讓計算機按照特定書序進行任務讀取,從而實現預期的功能;為了讓計算機能夠解讀此類文件的內容并正確的予以執行,必須將程序源代碼文件轉換為計算機可以直接識別并使用的二進制格式,此轉換過程稱為編譯;而想要完成編譯過程,必須使用特定的編譯器工具;因此,無論使用何種編程語言進行程序編寫,都必須嚴格按照編譯器所能夠識別的特定格式和語法結構進行程序編寫;編程語言:高級語言:根據源代碼的處理方式分類:編譯型語言:源代碼 --> 編譯器(編譯) --> [鏈接器(鏈接) --> ] 匯編器(匯編) --> 可以執行的二進制代碼文件;解釋型語言源代碼 --> 解釋器(逐行解釋) --> 邊解釋邊執行根據編程過程中的功能實現是調用庫還是調用外部程序文件分類:完整編程語言:利用庫或編程組件進行編程;腳本編程語言:利用解釋器調用被選擇的外部應用程序;根據程序的編寫規范分類:過程式語言:程序 = 指令 + 數據以指令為中心,圍繞指令的功能實現設計數據和數據結構,數據為指令服務;算法和指令的實現形式:順序執行選擇執行循環執行面向對象語言:程序 = 算法 + 數據結構以數據和數據結構為中心,將數據實例化,圍繞數據的需求來部署算法;類(Class):被實例化的數據;屬性(attibution):同一類中的不同對象的區分依據;方法(method):類的正確的操作方法;低級語言:匯編語言:機器語言:二進制語言shell腳本編程——bash腳本編程:過程式編程語言,解釋運行的編程語言,腳本類語言(依靠外部應用程序文件運行)shell腳本到底是什么?1.純文本文檔——文件中所有存儲或包含的指令+數據都是以字符為單位進行存儲的;2.根據用戶的需求來解決用戶問題的簡單或復雜的命令組合體;3.是一種具有"執行冪等性"的程序實體;執行冪等性:任何命令的一次執行結果和多次執行結果是一致的;注意:很多命令都不具備"執行冪等性",因此在shell腳本中需要使用大量的程序邏輯來判斷某個命令是否符合其運行條件,從而避免在運行過程中出現的嚴重錯誤;shell腳本中的代碼內容如何書寫?1.首行必須是shebang,即:解釋器程序的絕對路徑,必須占據絕對行首且必須單獨占據第一行;在執行腳本時,會根據shebang的指示,啟動相應的解釋器以解釋腳本被諸多的命令;#!/bin/bash#!/bin/sh#!/usr/bin/python#!/usr/bin/perl...2.在shell腳本中,除了shebang之外,所有行首為#字符的行,均被解釋為注釋行;即:解釋器只會解釋其內容,但并不予以執行;3.解釋器會忽略腳本文件中所有的空白行;空白行指的是:在一行文本中,除了空白字符,空格字符,制表字符之外不具備其他任何類型字符的行;4.大量的命令和關鍵字命令:內部或外部應用程序關鍵字:內置于shell,只能在某種特定結構體中執行的命令;keyword;如:if, else, then, do, while, for, select, until, case, fi, esac,...5.shell中的所有的特殊功能字符;注意:所有被編寫進shell腳本文檔的命令、關鍵字及符號必須是ASCII編碼格式的字符,其他編碼格式的字符可以出現在shell腳本文件中,但不具有任何特殊含義;如何編寫shell腳本?可以利用所有的文本文檔編輯工具進行shell腳本編寫,如:nano, vi, vim, pico, emacs, ...通常在Linux的各發行版本中,推薦使用vim;腳本文件的命名方式:一般情況下,會為腳本設置".sh"的名稱后綴;較低版本的編輯工具,會根據文件的后綴名稱來識別是否為shell腳本文件;交高版本的文本編輯工具,如vim7,無需過多的關系文件后綴名的問題。腳本的運行方式:1.為腳本文件賦予執行權限,可以直接以絕對路徑或相對路徑的方式運行此文件;# chmod +x /PATH/TO/SOME_SCRIPT_FILE# /PATH/TO/SOME_SCRIPT_FILE注意:如果腳本文件所在目錄路徑存儲于PATH變量中,則直接以腳本文件名來執行即可;2.直接使用解釋器運行腳本,將腳本文件作為解釋器程序的參數;# bash /PATH/TO/SOME_SCRIPT_FILEbash命令的常用選項:-x:使bash在解釋腳本的過程展示在標準輸出上;一般用于為shell腳本排錯-n:對腳本文件進行預執行,以分析腳本中是否存在語法類錯誤;如果沒有錯誤,則不輸出任何信息;相反,則輸出簡潔的提示信息;具體的錯誤定位需要自行判斷;注意:此種方式中,腳本文件是否有執行權限并不是很重要的屬性;注意:以上兩種方式,在執行腳本時,會在當前shell中開啟一個新的子shell以運行腳本;一般情況下,當腳本運行結束,該子shell也會被隨之銷毀;因此,所有在腳本中定義的變量,在腳本的末尾處,最好將其明確的撤銷;3.使用source命令運行腳本;# source /PATH/TO/SOME_SCRIPT_FILE# . /PATH/TO/SOME_SCRIPT_FILE注意:1.source命令不會在運行腳本時開啟子shell,而是在當前shell中運行;2.使用source命令執行的腳本中不要包括諸如exit類的命令;

轉載于:https://blog.51cto.com/13487800/2129799

總結

以上是生活随笔為你收集整理的bash特性以及shell脚本简介的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。