我在一个名为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:找不到命令有人可以对这里的问题有所了解吗?
答案 0 :(得分:2)
您已正确定义了该函数,但函数内部的语句导致错误。
你不能这样做:
result=expr $var * 100
您需要使用子shell执行(expr
推荐)或使用反引号来获取$()
的结果;最好使用bash
的{{1}}而不是调用外部进程(expr)
$(())