Bashで直接シェルスクリプト機能を使用する

Bashで直接シェルスクリプト機能を使用する

私は便利な機能でいっぱいのユーティリティシェルスクリプトを持っており、それをbash環境にインポートしたいと思います。source以前は、このコマンドを他の言語と似ているか、import別の言語で使用したことがありますinclude

printer.sh

#!/bin/bash

printAwesome () {
    echo "Awesome!"
}

printMoo () {
    echo "Moo!"
}

source printer.sh端末でコマンドを実行していると思います。本当ですか?私たちが従うべき他の手順はありますか?

activatePythonにはとがありますdeactivate

答え1

あなたが達成したい目標を正しく理解していれば、ファイルをロードするだけではsource十分ではありません。printer.shモジュールとして使用するには、exportスクリプトの外部で使用できる各関数の名前が必要です。したがって、printer.sh次のようにする必要があります。

#!/bin/bash

printAwesome () {
    echo "Awesome!"
}

printMoo () {
    echo "Moo!"
}

export -f printAwesome
export -f printMoo

その後、次のように書くことができますmyscript.sh

#!/bin/bash

source printer.sh
echo "Let's run these functions ..."
printAwesome
printMoo
echo "Hey, that works now!"

関連情報