调用shell的方法通过在子目录中的文件的链
问题描述:
我试图调用从文件的方法与结构来文件调用shell的方法通过在子目录中的文件的链
#!/bin/bash
source ./subDir/inSub.sh
subMethod;
inSub.sh:
#!/bin/bash
source ./subSubDir/inSubSub.sh
subMethod() {
echo "I'm in sub"
}
subSubMethod;
inSubSub.sh:
#!/bin/bash
subSubMethod() {
echo "I'm in subSub"
}
subSubMethod;
运行$ ./inRoot.sh
subDir/inSub.sh: line 2: subSubDir/inSubSub.sh: No such file or directory
subDir/inSub.sh: line 6: subSubMethod: command not found
I'm in sub
这样的结果,它为第一个呼叫,但不工作更深入。
btw:使用。 ./而不是来源./返回相同
如何做到这一点,如果有可能?
答
你必须改变你的inSub.sh像
当前工作目录并没有改变,只是因为剧本sourceing或执行文件。要更改当前目录,您必须*使用'cd'。 – AlexP
谢谢大家,伙计!非常感谢您的帮助。 –