上代碼
#!/bin/bash # shell函數和重定向 # shell 函數 # 函數的定義格式如下 # [ function ] funname [()] # { # action; # [return int;] # } # 1、可以帶function fun() 定義,也可以直接fun() 定義,不帶任何參數。 # 2、參數返回,可以顯示加:return 返回,如果不加,將以最後一條命令運行結果,作爲返回值。 return後跟數值n(0-255) demoFun(){ echo "這是一個hello world函數" } demoFun funWithReturn(){ echo "輸入第一個數字" read num echo "輸入第二個數字" read aNum echo "這兩個數字分別是:$num和$aNum" return $(($num+$aNum)) } funWithReturn echo "輸入的兩個數字之和是$?" # 函數參數 # 在Shell中,調用函數時可以向其傳遞參數。在函數體内部,通過 $n 的形式來獲取參數的值,例如,$1表示第一個參數,$2表示第二個參數... funWithParam(){ echo "第一個參數$1" echo "第二個參數$2" echo "參數的總個數是$#個" } funWithParam 2 4 5 6
輸出重定向
一般情況下,每個 Unix/Linux 命令運行時都會打開三個文档:
標準輸入文档(stdin):stdin的文档描述符爲0,Unix程序默認從stdin讀取數據。
標準輸出文档(stdout):stdout 的文档描述符爲1,Unix程序默認向stdout輸出數據。
標準錯誤文档(stderr):stderr的文档描述符爲2,Unix程序會向stderr流中寫入錯誤信息。
默認情況下,command > file 將 stdout 重定向到 file,command < file 將stdin 重定向到 file。
如果希望屏蔽 stdout 和 stderr,可以這樣寫:command > /dev/null 2>&1
shell文档包含
. filename 或者 source filename 兩種方式的效果相同,簡單起見,一般使用點號(.),但是注意點號(.)和文档名中間有一空格。