shell程式設計

2021-10-21 14:00:15 字數 2249 閱讀 3485

shell是解釋執行的指令碼語言,不用編譯就可以直接執行的語言。

shell是使用者與核心進行互動操作的一種介面,目前最流行的shell為bash shell

對重複的事情,執行效率低,執行動作多,複雜的事情我們都可以使用shell指令碼實現

比如自動化功能測試,檔案打包等操作

#!/bin/bash

#第乙個shell程式,demo.sh

echo "hello world!"

chmod +x demo.sh    //執行shell前需要先給指令碼附加執行許可權,再執行

./demo.sh                   //輸出hello world!

/bin/sh  demo.sh     //輸出hello world!

兩種執行方式,第一種是用程式指定的bash執行指令碼,第二個則是用指定的sh來執行的

shell中#符號表示注釋。shell的第一行比較特殊,一般都會以#!開始來指定使用的shell型別。 

shell型別可以通過 ls  -al  /bin/*sh 檢視

布林運算子

關係運算子

算數運算子

重定向運算子

說明運算子

說明運算子

說明運算子說明!

非運算子,

-eq檢測兩個數是否相等,相等返回 true。

+.-.*./

加減乘除

-o或運算子,

-ne檢測兩個數是否不相等,不相等返回 true%取餘

n > file

將檔案描述符為 n 的檔案重定向到 file。

-a與運算子,

-gt檢測左邊的數是否大於右邊的,如果是,則返回 true。=賦值

n >> file

將檔案描述符為 n 的檔案以追加的方式重定向到 file。

-lt檢測左邊的數是否小於右邊的,如果是,則返回 true。

==相等。用於比較兩個數字,相同則返回 true。

n >& m

將輸出檔案 m 和 n 合併。

-ge檢測左邊的數是否大於等於右邊的,如果是,則返回 true

!=不相等。用於比較兩個數字,不相同則返回 true

n 將輸入檔案 m 和 n 合併。

-le檢測左邊的數是否小於等於右邊的,如果是,則返回 true。

<< tag    

將開始標記 tag 和結束標記 tag 之間的內容作為輸入。

home: 儲存註冊目錄的完全路徑名

path: 環境引數等

term: 終端的型別

uid: 當前使用者的識別符號

pwd:當前工作目錄的絕對路徑

ps1: 主提示符, 特權模式下為 #,普通模式下為 $

&&:用來執行條件成立後執行的命令

||:用來執行條件不成立後的執行命令

明白這些運算子的意思,再去看法語法實現,其實就很簡單了,主要都是些判斷與執行語法,主要涉及的有

1. 變數定義   。。。

2. if-then語句  。。。

3. if-then-else語句  。。。

4. test命令  。。。

5. case語句  。。。

6. for-in語句  。。。

7. while迴圈語句  。。。

8. until迴圈語句  。。。

9. break語句  。。。

10. continue語句  。。。

11. case語句  。。。

12. 獲取使用者輸入方法  。。。

Shell程式設計 shell特性

linux會預設記錄1000條歷史記錄,可通過 echo histsize 檢視,如果講histsize更改為2000,那麼會預設儲存2000條。1000條記錄儲存在家目錄的 bash history 中,僅當使用者正常退出當前shell時,當前shell中執行的命令才會儲存到 bash histo...

Shell程式設計 Shell函式

shell函式 1.將命令序列按格寫在一起 2.可方便重複使用命令序列 3.shell函式定義 function 函式名 4.呼叫函式的方法 函式名 引數1 引數2 5.shell函式應用示例 1 兩個數字求和 要求 通過sum 定義函式 兩個數求和 方法一 root localhost vim d...

Shell程式設計

1 建立指令碼 vi emacs等即可 bin sh 2 shell變數 對shell來講,所有的變數的取值都是乙個字串 shell是一種解釋性語言,變數無需事先定義 shell中的系統變數 程式命令列引數的數目 儲存前乙個命令的返回值 0 當前程式名 以 1 2 形式儲存所有輸入的命令列引數 以 ...