第一,参数传递的是字符串(简单的字符串替换)没有指针,引用等概念
第二,参数是中间有空格的字符串传递时,小心被分割成两个参数(参数前后添加 " 或‘ 可避免分割)
#!/bin/bash fun1() { echo "fun1()" echo "$1" echo "$2" echo "=========" } p1="hello world" fun1 ${p1} fun1 "${p1}" declare -a arr fun2(){ echo "fun2()" # $1[0]="first element of array" # arr[0]=first element of array: 未找到命令 echo $1 arr[0]="first element of array" # 访问全局变量 echo "==========" } fun2 arr echo "${arr[0]}"
运行结果
fun1() hello world ========= fun1() hello world ========= fun2() arr ========== first element of array
原文地址:http://blog.csdn.net/scholar_ii/article/details/39030797