2016-10-04 4 views
0

여기에 많은 자료를 보았습니다. 저에게 적합한 솔루션을 찾을 수없는 것 같습니다. 가능성이 높습니다 내 설정이 잘못 됐어.외부 소스의 Bash 로딩 기능이 명령을 찾지 못했습니다.

모든 스크립트는 동일한 디렉토리에 있습니다. 단순화를 위해 파일 두 개를 단순화하여 간단한 사용 사례를 사용합니다.

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 

를 I t하면 함수는 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 

가 모두 같은 오류가 발생합니다.

+4

trim_quotes = trim_quote? –

+0

@TimD 수정. 간과 한 가장 간단한 것! –

답변

0

오타가 있습니다. trim_quoteS는 함수의 올바른 이름입니다.

#!/bin/bash 

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

echo $X 

실행 :!

$ ./script1.sh 
hello 
관련 문제