gpt4 book ai didi

Bash:调用函数时没有返回值

转载 作者:行者123 更新时间:2023-11-29 09:44:06 25 4
gpt4 key购买 nike

我是 stackoverflow 和 bash 脚本的新手,所以请放轻松!我一直在努力编写我一直在编写的 bash 脚本:当我尝试从我的脚本中调用函数“main”时,如下所示:

variable=$("main -t $path/$i")

我得到错误“main -t ./folder: No such file or directory”;有什么想法吗?

提前致谢!

编辑:谢谢 Jkbkot,我现在这样调用它:

variable=$(main -t "$path/$i")

原始错误已排序,但仍有问题:“变量”似乎未被赋予函数中回显的值,尽管手动调用函数会打印出正确的值。为什么会发生这种情况?

编辑:看来我正在正确地调用和回显,但是当调用“main”时,当递归调用初始调用时,它的行为似乎有所不同。例如,它运行良好:

variable=$(main -t "$path/$i") #A line within 'main'

然后又开始了,正如预期的那样,但是这次它一遇到“中断”就停止了,显然是中断了整个函数调用,而不仅仅是它当前所在的“情况”。是否有一些奇怪的地方我不知道的 bash 中的“中断”?

注意:不幸的是,该脚本是我所在大学的作业,其许多学生和教师都使用该网站,因此公开发布我的解决方案可能会产生负面影响。

最佳答案

你必须在不带引号的情况下调用它:

variable=$(main -t $path/$i)

正如@janos 所说,您可能需要在变量周围加上引号,以防它们可能包含空格等:

variable=$(main -t "$path/$i")

关于Bash:调用函数时没有返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20708199/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com