我已经做了足够的搜索来找到这个,但没有运气。我正在尝试编写一个Bash脚本,该脚本必须调用在其他地方定义的函数。
例如,我有一个shell test.sh
#!/bin/bash
# Shell - test.sh
function1() {
echo "Inside function 1"
}
function1
function2
exit 0
我有一个不同的文件,其中包含function2,
$ cat function2
function2() {
echo "Inside function 2"
}
现在,当我运行test.sh时, (Q1)它如何知道在哪里找到function2? (Q2)没有显示功能2的回声输出
任何输入都会很棒。
嗨,谢谢你的回答。但是,令我惊讶的是,当我使用" $。/ test.sh"执行shell时,我得到"内部函数1"的输出。如果shell没有找到" function2",它应该抛出一个错误,"函数找不到或者"。我觉得以某种方式调用了函数但是没有显示消息。
谢谢, 拉维
答案 0 :(得分:0)
继续发表评论,source
中的file2
file1
,例如
#!/bin/bash
# Shell - test.sh
function1() {
echo "Inside function 1"
}
if [ -r "file2" ] ## make sure file2 is readable by file1
then
. "file2" ## source file2 in file1.
## Yes the . is a command! Check 'help .'
else ## otherwise show error and exit
printf "error: file2 not readable by file1.\n" >&2
exit 1
fi
function1
function2
exit 0
答案 1 :(得分:-1)
您必须在具有功能1的文件中导入具有完整路径的功能2的其他文件。这样您就可以访问文件2的功能。