参考:https://www.cnblogs.com/meitian/p/5662022.html
#!/bin/bash
function a()
(
...
bFlag=b $1
return $bFlag
}
function b()
{
...
echo "0"
}
#切割
OLD_IFS=$IFS
IFS='|'
dataArr=${data}
IFS=$OLD_IFS
for d in ${dataArr[@]}; do
a ${d}
flag=$?
done
如果使用
函数a中使用echo返回值,调用形式flag=`a ${d}`,如果${d}包含(或者(,就无法传参
定义一个函数
functionname(){
操作内容
return 返回值 #返回值可有可不有
}
获得函数的返回值
例如:
a=`functionname`
functionname
3.使用$?接收上一程序的返回值状态,也就是return的值
echo $?
遇到的问题:
虽然不影响使用,但看着总是不好,查了一下说shell的函数默认是返回0和1来表示是否成功的,如果一定要返回值的话,可以在函数外定义一个全局变量,然后在函数中赋值这个变量。这样调用函数后,全局变量就变了,达到同样的效果
#!/bin/sh
num=10
add(){
echo "test"
((num++))
add
输出的结果是11(变量自增我用num=num+1是无效的,不知道为什么,必须要用num++)
其他