最近系統的學習了一下shell的函數,總體感覺根其他語言的函數差不多,不過它也有自身的特點
一,調用函數必須在定義函數的后,不然會報錯的
代碼如下:
fun
fun (){
echo "aaaaaa"
}
fun
返回結果如下:
代碼如下:
[root@krlcgcms01 mytest]# sh fun.sh
fun.sh: line 1: fun: command not found //第一次調用fun是報錯的,fun沒有定義
aaaaaa //第二次調用fum顯示的結果
如果是php或者是javascript的話,就不會出現這樣的問題
二,向shell函數傳遞參數很有特點
代碼如下:
fun2 (){
echo $0 //$0本身文件名
if [ $1 ] //參數為什么都是從$1開始呢,$0是本身文件名
then
echo "param1 is "$1
else
echo "param1 is null"
fi
if [ $2 ]
then
echo "param2 is "$2
fi
}
fun2 aaa bbb //向fun2傳2個參數
fun2 ccc //向fun2傳1個參數
fun2 //不傳參數
返回結果如下:
代碼如下:
[root@krlcgcms01 mytest]# sh fun2.sh
pa.sh //第一次調用fun2,顯示$0的值
param1 is aaa
param2 is bbb
pa.sh //第二次調用fun2,顯示$0的值
param1 is ccc
pa.sh //第三次調用fun2,顯示$0的值
param1 is null
這樣的傳參方式,很特別吧。
三,引用舉例
代碼如下:
reference ()
{
pa=/$"$1" //$1顯示的是param
echo $pa //顯示的是$param
新聞熱點
疑難解答