我是stackoverflow和bash脚本的新手,所以对我来说很容易!我一直在努力学习我一直在写的bash脚本:当我尝试从我的脚本中调用函数'main'时:
variable=$("main -t $path/$i")
我收到错误“main -t ./folder:没有这样的文件或目录”;任何想法?
提前致谢!
编辑:谢谢Jkbkot,我现在这样称呼它:
variable=$(main -t "$path/$i")
原始错误已排序,但仍有一些错误:'变量'似乎没有被分配函数中回显的值,尽管手动调用函数会打印正确的值。为什么会发生这种情况?
编辑:看起来我正在调用并正确回显,但是当调用'main'时,在递归调用初始调用时似乎行为不同。例如,它运行正常:variable=$(main -t "$path/$i") #A line within 'main'
然后再次开始,正如预期的那样,但是这次它一旦遇到“休息”就会停止,显然会突破整个函数调用,而不仅仅是它当前所处的“情况”。是否有一些怪癖到在bash中'打破',我不知道?
注意:不幸的是,该脚本是我大学的一项任务,许多学生和老师使用这个网站,因此公开发布我的解决方案可能会产生负面影响。
答案 0 :(得分:5)
你必须在没有引号的情况下调用它:
variable=$(main -t $path/$i)
正如@janos所说,如果它们可能包含空格等,你可能需要围绕变量的引号:
variable=$(main -t "$path/$i")