我在bash脚本中有一个函数,该函数应该接受并处理输入。但是,如果我在脚本中多次运行该函数,它将仅处理第一个函数的输入。每个后续函数都使用传递给第一个函数的参数。该功能正常运行,但没有正确的输入。
我尝试注释掉正在调用的函数的实例,并且下一个函数正确运行,但是所有后续操作都使用在第一次运行中定义的参数。
funcInitiate (){
while getopts "d:i:a:b:c:e:f:g:" opt
do
case "$opt" in
a) f1="$OPTARG" ;;
b) f2="$OPTARG" ;;
esac
done
outherFunc
foo=$f1;foo+=$f2
echo $foo
}
如果我运行
funcInitiate -a abc -b def
funcInitiate -a xyz -b abc
我回来了:
abcdef
abcdef
如果我禁用了top函数,第二个函数将正确返回xyzabc。显然,这只是一个例子,但令人非常沮丧。