bash関数を親スクリプトに含める

bash関数を親スクリプトに含める

Bashで関数を定義して使用できます。

foo() { echo $1; }
foo test

ただし、bashスクリプトから自分の機能を収集したい場合は、次のすべての機能を使用できません。

バッシュの初期化

#!/bin/bash
foo() { echo $1; }  
export -f foo # This not helps

使用:

./init.bash && foo test # error here

スクリプトの機能を上位範囲にエクスポートする方法はありますか?
作成しないとグローバルすぎます.bashrcが、現在のbashインスタンスにのみ適用されます。
.bashrc

ベストアンサー1

sourceファイルを挿入できますinit.shexportそのファイルの機能は必要ありません。

$ cat init.bash 
foo() { echo $1; }

そしてそれを使用してください:

$ . ./init.bash && foo test
test

ファイルを取得すると、現在のシェルコンテキストのファイルからコマンドが実行されます。したがって、これらの機能は

export現在のシェルとサブシェルに適用可能な変数のプロパティが設定されます。親シェルではありません。変数を定義する必要があります。現在のシェルのコンテキスト。

おすすめ記事