第一,参数传递的是字符串(简单的字符串替换)没有指针,引用等概念
第二,参数是中间有空格的字符串传递时,小心被分割成两个参数(参数前后添加 " 或' 可避免分割)
#!/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