shell程式設計

2022-08-20 21:21:12 字數 2512 閱讀 8411

shell程式設計

一、shell指令碼

把分散執行的若干shell命令配合

shell

環境支援的流程控制指令而構成的乙個具備可執行許可權的檔案。

a)shell命令

b)shell直譯器

c)可執行器

二、shell直譯器

一種特定的具備解釋執行shell的命令的特殊程式

三、shell程式

a)最簡單的shell指令碼程式

#!/bin/bash

#這是注釋,其解釋作用,不影響指令碼的執行效果

shell命令

注意:1.在shell指令碼中,需要制定解釋該

shell

指令碼的shell

直譯器;

2.shell指令碼檔案的副檔名使用

.sh3.該shell指令碼需要解釋許可權chmoda+xhahaha.sh

a+x 是給所有人加上可執行許可權,包括所有者,所屬組,和其他人

o+x 只是給其他人加上可執行許可權

b)shell變數:用來存放一定資料的名字代表

shell變數名:就是乙個代號(字串),僅僅只表示名字本身

shell變數的值:使用(

$變數名)來表示變數儲存的具體資料

使用例項:

$select=yes

echo $select

$# 是傳給指令碼的引數個數

$0 是指令碼本身的名字

$1 是傳遞給該shell指令碼的第乙個引數

$2 是傳遞給該shell指令碼的第二個引數

$@ 是傳給指令碼的所有引數的列表

$* 是以乙個單字串顯示所有向指令碼傳遞的引數,與位置變數不同,引數可超過9個

$$ 是指令碼執行的當前程序id號

$? 是顯示最後命令的退出狀態,0表示沒有錯誤,其他表示有錯誤

c)條件測試

1.判斷與數字之間的關係

1.   -eq(等於)  

-ne(不等於)

test  $num  -eq  10

2.   -ge(大於等於)

-gt(大於)

test  $num  -ge  10

3.   -le(小於等於)  

-lt(小於)

test  $num  -lt  10

echo -n 表示尾部換行

2.判斷與字串之間的關係

1.  -n  -z

test  -z  $string

2.  =  !=

test  $string  =  yes

3.判斷與檔案之間的關係

1.  -d  path:判斷該檔案是否為目錄

test  -d  ~/linux/

-e  path:判斷檔案是否存在

test  -e  ~/hello.c

-f  path:判斷該檔案是否是普通檔案

test  -f  ~/test

注意:test指令測試成功返回

0,測試失敗返回非

0d) 條件分支語句

條件執行

if   條件表示式

then

執行語句

fi分兩種情況執行

if   條件表示式

then

執行語句1

else

執行語句2

fi分多鐘情況執行

if  條件

表示式1

then

執行語句1

elif  條件表達2

then

執行語句2

else

執行語句n

fie) 迴圈語句

forwhile

練習:編寫乙個shell指令碼,從位置引數上傳入三個值,分別是區間的下限m、上限n、步長s,在指令碼內求該該區間[m,n]內,在該步長s變化下的所有整數的和。

-o是邏輯或,一邊為真,結果為真,否則為假

分兩種情況執行

if 條件表示式

then

執行語句1

else

執行語句2

fitest被[ ]代替時,[ ]之間的表示式一定要用空格隔開

判斷輸入的word是否相同

1.分多種情況執行

d)迴圈語句

f)函式

1.函式存在的意義:將需要重複使用的命令塊封裝起來,起乙個唯一的名字,用來作為乙個命令整體可重複使用

2.函式的定義

(在呼叫之前)

函式名()

重用命令塊

3.函式的呼叫

直接使用函式名呼叫該函式

4.函式的傳參

5.函式的返回值

在函式內部使用return返回乙個值,在函式呼叫結束之後,使用

$?獲取返回值

add test()

return 100

add test()

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 形式儲存所有輸入的命令列引數 以 ...