2016-10-04 37 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