使用符号链接时从另一个文件中调用Bash调用函数

时间:2017-11-13 17:43:37

标签: linux bash shell

我创建了两个bash文件并将它们放在同一个项目文件夹中。我已将bash文件与此命令ln -s ~/{path_to_bash_file_one} x相关联。现在我想在bash文件中使用bash文件中的一个函数,如下所示。

Bash文件一:

#!/usr/bin/env bash

# include files
source  ./bash_file_two.sh

echo "hello " ${someFunc}

Bash文件二:

#!/bin/bash

someFunc () {
    echo "someone"
}

当我调用它时,终端返回此错误/usr/local/bin/x: line 135: someoneFunc: command not found。所以我的问题是,当一个文件通过符号链接链接时,正确的路径是什么?

1 个答案:

答案 0 :(得分:1)

错误

/usr/local/bin/x: line 135: someoneFunc: command not found

与符号链接imho无关。

将bash文件更改为

someoneFunc () {
    echo "someone"
}

来源

. /path/to/bash/file2
./path/to/x # Then run x

另外,用法

echo "hello " someOneFunc
乍一看看起来并不正确。相反,你是否寻找命令替换

echo "hello " $(someOneFunc)