Bash4 0中文文件解讀一

2021-10-02 22:33:00 字數 2843 閱讀 1417

2 shell的基本功能

2.2 shell命令

2.3 shell函式

1.1 什麼是bash

bash是乙個用於gnu作業系統的shell,也就是命令直譯器。

1.2 什麼是shell

shell是乙個能執行各種命令的巨集處理器。

unix shell不僅是乙個命令直譯器,還是一種程式語言。

shell會讀取輸入並將之分解為乙個個單詞和運算子,並使用引用規則來決定每個單詞和字元的不同含義。然後shell會把這些解析為命令和其他結構,去除一些特定單詞的特殊含義,對另外一些進行擴充套件,根據需要進行重定向,執行指定的命令,等待其退出狀態,並讓這個狀態能用於後續檢查或處理。

2.1 shell操作

1.讀取命令

2.根據引用規則對命令做展開,同時進行別名擴充套件

3.將符號解析為簡單或者複雜命令

4.進行各種shell擴充套件

5.進行必要的重定向,並將其從命令引數列表中去掉

6.執行得到的命令

7.(可選)等待命令結束並收集其退出狀態

2.1.1 引用

引用在 shell 中用以去除某些字元或單詞的特殊含義。

可以用來禁止對特殊字元的特殊處理,使得保留字不再被認為是保留字,或者禁止引數擴充套件。

三種引用機制:轉義字元、單引用、雙引用

2.1.2 轉義字元

字元描述

\a警告(響鈴)

\b退格刪除

\e轉義字元(不屬於ansi c)

\f走紙換頁

\n新行

\r換行

\t(水平)製表符

\v垂直製表符

\ \反斜槓

\ 』單引號

\nn由八進位制數nnn(一到三個數字)代表的乙個八位字元

\xhh

由十六進製制數hh(一到兩個數字)代表的乙個八位字元

\cx乙個控制字元ctrl-x

2.1.3 單引用

2.1…4 雙引用

2.2 shell命令

2.2.1 簡單命令

乙個簡單的shell命令,包括命令本身、加一些引數,用空格分隔。

2.2.2 管道

控制字元| 或者 |&

1.格式

[ time [-p] ] [!]命令一[[|或者|&]]命令二...]
|&是2>&1 | 的簡寫形式

2.2.3 命令佇列

命令佇列由乙個或者管道通過運算子 ;、&、&&、||連線而成,最後還可以由 ; 、&或者換行符結束

&&和||具有同樣的優先順序,;和&也是。

與佇列

命令一 && 命令二
或佇列

命令一 || 命令二
2.2.4 復合命令

bash提供了迴圈結構、條件結構、以及將命令分組並將之整體執行的機制。

1.迴圈結構

until 測試命令; do 命令塊; done
while 測試命令; do 命令塊; done
for 變數 [in 單詞 ]; do 命令塊; done
for((表示式一;表示式二;表示式三));do命令塊;done
2.條件結構

if   測試命令一      ;then

命令快一;

[elif 測試命令二 ;then

命令快二;]

[else

其他命令塊;]

fi

case  單詞  in

[ [(] 模式一 [| 模式二] ...)

命令塊;;]

......

...esac

每個分句都以";;"、";&"、";;&" 結束

;;結尾:匹配第乙個模式後就不會再匹配其他模式

;& 結尾:有其他分句就繼續執行

;;& 結尾:有其他分句就檢查其模式,模式為真就繼續執行

select 名稱 [in 單詞表 ...];do 命令塊;done
((算術表示式))
等於 let 「表示式」

[[條件表示式]]
3.命令組合

(表示式)
{表示式;}
2.3 shell函式

賦值語句可以作為內部命令 alias、declare、typeset、export、readonly、local的引數

2.3.1 位置引數

由除了單個0以外的乙個或多個數字表示的引數

2.3.2 特殊引數

這些引數只能使用不能賦值

*從1開始的引數 「$ *」 ="$1c$2c"

@從1開始的引數 「$ @」="$1c""$2c"…

-連字元

!後台執行的命令

_ 下劃線

Bash4 0中文文件解讀三

3.2 bash的內部命令 內部命令是由shell自身提供的。3.1 波恩shell的內部命令 逗號 除了擴充套件引數和執行重定向不做任何操作,返回狀態是零。點號 讀取命令 和source等價 break 從for,while,until,select迴圈中退出 cd切換工作目錄 continue ...

AspEmail 5 0 中文文件

文件已經更新。目錄如下 第一章 概述 介紹aspemail 的一般特性,系統要求和安裝過程 第二章 入門 介紹傳送簡單文字和 html 超文字格式電子郵件 第三章 附件 介紹如何傳送帶附件的電子郵件。同時也介紹了 aspupload 與aspemail 聯合使用的方法 第四章 內嵌影象 介紹如何在傳...

Julia 1 0 中文文件

歡迎來到julia 1.0的文件。請閱讀發布部落格文章,了解該語言的一般概述以及自julia v0.6以來的許多更改。請注意,0.7版本與1.0一起發布,以提供1.0版本之前的軟體包和 的公升級路徑。0.7和1.0之間的唯一區別是刪除了棄用警告。有關自0.6以來的所有更改的完整列表,請參閱版本0.7...