我尝试使用以下结构调用文件到文件的方法:
/root
/subDir
/subSubDir
inSubSub.sh
inSub.sh
inRoot.sh
文件内容:
inRoot.sh:
#!/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:使用。 ./而不是 source ./返回相同的
如果可能的话,如何做到这一点?
答案 0 :(得分:0)
你必须像那样改变你的inSub.sh
cat ./subDir/inSub.sh
#!/bin/bash
var="${BASH_SOURCE[0]}"
source "${var%/*}"/subSubDir/inSubSub.sh
subMethod () {
echo "I'm in sub"
}
subSubMethod;