Bash Shell functions



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

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

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

./func.sh

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

我可以看到这一行:声明 -fx 和

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

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

有人可以阐明这里的问题是什么吗?

您已正确定义函数,但函数中的语句导致错误。

你不能做:

result=expr $var * 100

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

$ function sum { var=$1; result=$(($var * 100)); echo $result; }
$ export -f sum
$ sum 10
1000

相关内容

  • 没有找到相关文章

最新更新