source some_file
一部_ファイル:
doit ()
{
echo doit $1
}
export TEST=true
私がソースだったら一部のファイル"doit"関数とTEST変数はコマンドラインで使用できます。ただし、次のスクリプトを実行してください。
スクリプト.sh:
#/bin/sh
echo $TEST
doit test2
TEST値が返されますが、不明な関数「doit」のエラーが発生します。
関数も「エクスポート」できますか?または、そこで関数を使用するには、script.shからsome_fileを取得する必要がありますか?
ベストアンサー1
Bashでは、スクリプトが呼び出す他のシェルスクリプトに関数定義をエクスポートできます。
export -f function_name
たとえば、次の簡単な例を試すことができます。
./script1
:
#!/bin/bash
myfun() {
echo "Hello!"
}
export -f myfun
./script2
./script2
:
#!/bin/bash
myfun
その後、電話すると./script1
出力が表示されます。こんにちは!。