这是参数化函数的正确语法吗?
#!/bin/bash
twoPow()
{
prod=1
for((i=0;i<$1;i++));
do
prod=$prod*2
done
return prod
}
echo "Enter a number"
read num
echo `twoPow $num`
输出:
bash 示例.sh
输入数字
3
sample.sh:第 10 行:返回:prod:需要数字参数
第 2 部分:
我删除了返回,但是如果我想运行多次并存储如下结果,我该怎么办?我怎样才能做到这一点?
#!/bin/bash
tp1=1
tp2=1
twoPow()
{
for((i=0;i<$1;i++));
do
$2=$(($prod*2))
done
}
twoPow 3 tp1
twoPow 2 tp2
echo $tp1+$tp2
最佳答案
在 Bash 脚本中,您无法将值返回给调用代码。
像在其他语言中一样模拟“返回”值的最简单方法是将全局变量设置为预期结果。
幸运的是,在 bash 中,所有变量默认都是全局的。只需尝试在调用该函数后输出 prod
的值即可。
关于bash - 在 Bash 中使用函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19262313/