2016-10-04 7 views
0

ここでは多くのリソースを見てきましたが、私にとってはうまくいく解決策を見つけることができません。おそらくそれは間違っている私の設定です。外部ソースからのBashローディング機能がコマンドを生成しない

すべてのスクリプトは同じディレクトリにあります。わかりやすくするために、2つのファイルに簡略化し、簡単なユースケースを使用します。

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をすれば、私は次の出力を得る:Iトン場合

trim_quote: command not found 

をそれは正常に動作しますが、何らかの理由で外部から参照されることに同意しません。

は、私が試してみました:

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 
関連する問題