bash - 在 Bash 中使用函数

标签 bash function shell

这是参数化函数的正确语法吗?

#!/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/

相关文章:

c++ - 为什么 C++ 中的 main() 函数不采用除 int 和 void 以外的任何其他返回类型

linux - shell脚本变量传递给awk并需要保留双引号

java - 在 bash 中转义特殊字符

linux - 从文件名中提取数字

Bash 函数,将函数参数导出为环境变量

linux - 使用 shell 脚本从先前创建的文件中删除单词

linux - linux shell 中的管道管理

bash - Vagrant 报告一个没有任何运行的端口冲突

javascript - 奇怪的 JavaScript 行为?

有人可以解释在 Pebble C Watchface 教程中找到的部分代码吗?