Bash Shell功能

时间:2016-05-25 11:44:20

标签: bash

我在一个名为func.sh的unix文件中有以下代码:

function sum {
var=$1
result=expr $var * 100
echo $result
}

export -f sum

我希望能够从命令行调用此函数,因此我这样做:

。 ./func.sh

使用以下命令检查功能是否正确导出: 声明-x -F

我可以看到这一行:declare -fx sum

但我无法从命令行运行该功能。它给出了一个错误:

总和10 -bash:10:找不到命令

有人可以对这里的问题有所了解吗?

1 个答案:

答案 0 :(得分:2)

您已正确定义了该函数,但函数内部的语句导致错误。

你不能这样做:

result=expr $var * 100

您需要使用子shell执行(expr推荐)或使用反引号来获取$()的结果;最好使用bash的{​​{1}}而不是调用外部进程(expr)

$(())