1. 定义函数
(1) 定义函数:
function fname()
{
statements;
}
或者:
fname()
{
statements;
}
2. 只需要使用函数名就可以调用某个函数:
$1 是第一个参数。
$2 是第二个参数。
$n 是第n个参数。
"$@" 被扩展成 "$1" "$2" "$3" 等。
"$*" 被扩展成 "$1c$2c$3" ,其中 c 是IFS的第一个字符。
"$@" 要比 "$*" 用得多。由于 "$*" 将所有的参数当做单个字符串,因此它很少被
使用。
fname(){ //定义函数
statements;
}
fname; //调用函数
3. 参数可以传递给函数,并由脚本进行访问:
#!/bin/bash -xv
#文件名:frame.sh
function fSum()
{
echo $1,$2;
return $(($1+$2));
}
fSum 3 2;
fSum 5 7;
total=$(fSum 3 2);
echo $total,$?; //$? 是读取命令返回值,后面有介绍
输出结果:
3,2
5,7
3,2,5
4. 在Bash中,函数同样支持递归(可以调用自身的函数)。
5. 函数可以导出来,然后可以作用到子进程里,但是这里不太明白,留问号
export -f fname
6. $? 读取命令返回值
#!/bin/bash -xv
#文件名:frame1.sh
frame(){
echo $1,$2;
return $(($1+$2));
}
frame 1 2;
echo $?;
输出结果:
1,2
3
7. 向命令传递参数 不是太明白,回头再看,先打?
(1) 定义函数:
function fname()
{
statements;
}
或者:
fname()
{
statements;
}
2. 只需要使用函数名就可以调用某个函数:
$1 是第一个参数。
$2 是第二个参数。
$n 是第n个参数。
"$@" 被扩展成 "$1" "$2" "$3" 等。
"$*" 被扩展成 "$1c$2c$3" ,其中 c 是IFS的第一个字符。
"$@" 要比 "$*" 用得多。由于 "$*" 将所有的参数当做单个字符串,因此它很少被
使用。
fname(){ //定义函数
statements;
}
fname; //调用函数
3. 参数可以传递给函数,并由脚本进行访问:
#!/bin/bash -xv
#文件名:frame.sh
function fSum()
{
echo $1,$2;
return $(($1+$2));
}
fSum 3 2;
fSum 5 7;
total=$(fSum 3 2);
echo $total,$?; //$? 是读取命令返回值,后面有介绍
输出结果:
3,2
5,7
3,2,5
4. 在Bash中,函数同样支持递归(可以调用自身的函数)。
5. 函数可以导出来,然后可以作用到子进程里,但是这里不太明白,留问号
export -f fname
6. $? 读取命令返回值
#!/bin/bash -xv
#文件名:frame1.sh
frame(){
echo $1,$2;
return $(($1+$2));
}
frame 1 2;
echo $?;
输出结果:
1,2
3
7. 向命令传递参数 不是太明白,回头再看,先打?