天天看點

shell腳本 之 函數傳回值

shell 函數傳回值

隻允許傳回數字,若不是則報 line 6: return: haha: numeric argument required

若是寫了return ,則傳回return 語句跟的數值,若是沒有return語句則傳回最後一個指令的執行結果。

用例子說話吧

  1 #!/bin/bash

  2 

  3 returnNum(){

  4       return 10

  5 }

  6 

  7 returnLasCommand(){

  8       pwd

  9 }

 10 

 11 returnString=""

 12 

 13 returnString(){

 14     returnString="haha"

 15 }

 16 

 17 returnString1(){

 18     return "haha"

 19 }

 20 

 21 r1=$(returnNum)

 22 echo 'r1' $?

 23 

 24 r2=$(returnLasCommand)

 25 echo 'r2' $?

 26 

 27 returnString

 28 echo 'r3' $returnString

 29 

 30 returnString1

 -----------------------------

[email protected]:~/myshell/shell/declare$ ./mm2 

r1 10

r2 0

r3 haha

./mm2: line 18: return: haha: numeric argument required

可以看到傳回字元串的時候報錯了!若是我們需要傳回一個字元串怎麼半呢?那隻能實用全局變量的方式了!就是r3的方式