2
我有目录层次结构,其中“根”目录有一个名为“text.txt”的文件。我想找到这个“根”目录,然后在其中运行命令'foo'。以下是我目前有达到最大嵌套功能级别
# Locates the root directory
locateRoot() {
local root
#Findup looks up through the directory hierarchy. I'm sure this works.
root=$(findup text.txt 2>&/dev/null)
if [[ $? -ne 0 ]]
then
echo "Root not found"
return 1
fi
echo root
}
# Does foo from within the root directory
runFoo() {
local myDir
myDir=$(locateRoot)
pushd $myDir 1>&/dev/null
foo [email protected]
popd 1>&/dev/null
}
但是,每当我运行这个程序,我得到:
maximum nested function level reached
这有什么错我有什么?我确信foo按预期工作。
你“回声根”在第11行执行,只要你想某些任务应该是“回声$根”。另外,当编写一个输出一些数据然后用$()捕获的函数时,将它与消息混合并不是一个好主意:你应该将第8行的错误消息写入stderr。 –
小心解释一下为什么?对不起,我真的很陌生。谢谢:) – Nosrettap
因为在bash中使用变量“root”的值,所以需要写入$ root –