shell 教程六 函式的使用

2021-07-25 13:30:16 字數 3147 閱讀 4907

linux@ubuntu

:~/test_shell$ cat hello

.sh

#!/bin/bash

myfunc

()

echo

"begin call myfunc()"

myfunc

echo

"end call myfunc()"

linux@ubuntu

:~/test_shell$

./hello

.sh

begin call myfunc

()

myfunc

()is called

!

end call myfunc

()

linux@ubuntu

:~/test_shell$ cat hello

.sh

#!/bin/bash

myfunc

()

echo

"begin call myfunc()"

myfunc

echo

"myfunc() return $?"

echo

"end call myfunc()" # 13行與14行**不能互換,應該echo也是一種函式

linux@ubuntu

:~/test_shell$

./hello

.sh

begin call myfunc

()

myfunc

()is called

!

myfunc

()return

3end call myfunc

()

注意:所有函式在使用前必須定義。這意味著必須將函式放在指令碼開始部分,直至shell直譯器首次發現它時,才可以使用。呼叫函式僅使用其函式名即可。

函式返回值在呼叫該函式後通過 $? 來獲得。

linux@ubuntu

:~/test_shell$ cat hello

.sh

#!/bin/bash

myfunc

()" # $10以上的應該要加{},著色也提示了,1與0的顏色不一樣,但實測ubuntu是能用的

echo

"$"

echo

"$*"

echo

"*****myfunc()===="

a

=3

return

$a

}

echo

"begin call myfunc()"

myfunc 12

3456

78910

11

echo

"return1 $?" # return1 與 return2 順便驗證一下上面所說的

echo

"return2 $?"

echo

"end call myfunc()"

linux@ubuntu

:~/test_shell$

./hello

.sh

begin call myfunc

()

*****

myfunc

()====

1

2

3

4

5

6

7

8

9

10

11

123

4567

891011

*****

myfunc

()====

return1

3

return2

0

end call myfunc

()

注意,$10 不能獲取第十個引數,獲取第十個引數需要$。當n>=10時,需要使用$來獲取引數。

另外,還有幾個特殊字元用來處理引數:

引數處理

說明$#

傳遞到指令碼的引數個數

$*以乙個單字串顯示所有向指令碼傳遞的引數

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

$!後台執行的最後乙個程序的id號

$@與$*相同,但是使用時加引號,並在引號中返回每個引數。

$-顯示shell使用的當前選項,與set命令功能相同。

$?顯示最後命令的退出狀態。0表示沒有錯誤,其他任何值表明有錯誤。

python教程(六)函式

函式定義就是對使用者自定義函式的定義。參見 標準型別層級結構 一節 函式定義是一條可執行語句。它執行時會在當前區域性命名空間中將函式名稱繫結到乙個函式物件 函式可執行 的包裝器 這個函式物件包含對當前全域性命名空間的引用,作為函式被呼叫時所使用的全域性命名空間。關鍵字def引入乙個函式 定義。它必須...

TouchGFX使用教程(六)

好久沒更新了,之間主要是為了之後的更新在準備一些demo,這期主要給大家介紹乙個例子,這個例子很小但是能說明 一些touchgfx的開發細節。話不多說先上圖。這期主要給大家介紹這個圓環進度條。這個 看起來感覺很高大上的進度條,其實組成原理分為幾個部分。首先先注意下這個介面,這個介面是touchgfx...

shell基本使用教程

shell程式設計 1 沒有資料型別,都是字串,數值也時字串 建立變數 a hello echo aec ho a echo aech o echo 三者等價 echo ahe lloe cho hell ob a hello echo hello b ahello echo hel loba a ...