2016-10-04 38 views
0

我已经看过这里的许多资源,我似乎无法找到一个适合我的解决方案。更可能是我的配置错了。从外部来源的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 est功能它工作正常,但由于某种原因,它不同意被外部引用。

我曾尝试:

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 

所有这些都产生了同样的错误。

+4

trim_quotes = trim_quote? –

+0

@TimD正确。忽略了最简单的事情! –

回答

0

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

#!/bin/bash 

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

echo $X 

运行:

$ ./script1.sh 
hello