2016-09-22 13 views
1

私はこれを見つけるのに十分な検索を行ったが、運がない。私は別の場所で定義されている関数を呼び出さなければならないBashスクリプトを書こうとしています。Bashスクリプトで関数を呼び出す

は例えば、私はtest.shを実行すると、 (Q1)、今

#!/bin/bash 

# Shell - test.sh 

function1() { 
    echo "Inside function 1" 
} 

function1 
function2 

exit 0 

私は機能2を持っている別のファイルを持っているtest.shシェル、

$ cat function2 

function2() { 
    echo "Inside function 2" 
} 

を持っていますfunction2の場所を知る方法は? (Q2)関数2のエコー出力が表示されません。

入力があれば大丈夫です。

こんにちは、ありがとうございます。しかし、驚いているのは、 "$。/ test.sh"を使ってシェルを実行すると、 "Inside function 1"という出力が得られます。シェルが "function2"を見つけられなかった場合は、 "function not found or something"というエラーがスローされます。何とか関数が呼び出されたように感じますが、メッセージは表示されません。あなたは完全なパスと機能2を持っている他のファイルをインポートする必要があり

おかげで、 ラヴィ

+0

あなたは 'それは周りに他の方法だDavidC.Rankin @ –

+0

(あなたは' source'ためのショートカットとして '.'使用することができます)最初に第二のファイルをsource'、' source'コマンドが長いです'.'コマンドの最初のバージョンです。 – hek2mgl

+0

私はいつもそれを後ろに持っています。私はチキンか卵を間違ってもらう '') –

答えて

-1

は、その方法1.機能を持っているファイルで、ファイル2

の機能へのアクセスを持っています
+0

こんにちは、あなたの答えをありがとう。しかし、驚いているのは、 "$。/ test.sh"を使ってシェルを実行すると、 "Inside function 1"という出力が得られます。シェルが "function2"を見つけられなかった場合は、 "function not found or something"というエラーがスローされます。何とか関数が呼び出されたように感じますが、メッセージは表示されません。 –

0

コメントから引き続き、sourcefile2file1にします。

#!/bin/bash 

# Shell - test.sh 

function1() { 
    echo "Inside function 1" 
} 

if [ -r "file2" ] ## make sure file2 is readable by file1 
then 
    . "file2"  ## source file2 in file1. 
        ## Yes the . is a command! Check 'help .' 
else    ## otherwise show error and exit 
    printf "error: file2 not readable by file1.\n" >&2 
    exit 1 
fi 

function1 
function2 

exit 0 
+0

誰がこれを落札したか分からない。答えは正しい。 – hek2mgl

+1

新しい秋の学期に入った少年のダウンボートの新メンバーです。 –

関連する問題