来自外部源的Bash加载函数产生未找到的命令

时间:2016-10-04 18:16:51

标签: bash

我在这里看了很多资源,我似乎无法找到适合我的解决方案。我的配置很可能是错误的。

所有脚本都在同一目录中。为了简单起见,我将它简化为两个.sh文件并使用简单的用例。

script1.sh

#!/bin/bash

source script2.sh
X=$(trim_quote "\"hello\"")

echo $X

script2.sh

#!/bin/bash

trim_quotes () {
    echo $1 | sed 's/"//g'
}

如果我执行以下./script1.sh,我会得到以下输出:

trim_quote: command not found

如果我在script2.sh内测试该功能,它可以正常工作,但出于某种原因,它不同意在外部引用。

我试过了:

source ./script2.sh

PWD=$(pwd)
source $PWD/script2.sh

. script2.sh

. ./script2.sh

PWD=$(pwd)
. $PWD/script2.sh

$include script2.sh

$include ./script2.sh

PWD=$(pwd)
$include $PWD/script2.sh

所有这些都会产生相同的错误。

1 个答案:

答案 0 :(得分:0)

这是一个错字。 trim_quoteS是函数的正确名称。

#!/bin/bash

source script2.sh
X=$(trim_quotes "\"hello\"")

echo $X

执行命令

$ ./script1.sh 
hello