さまざまなスクリプトで参照して使用したい関数があります。これを行う方法はありますか?異なるスクリプトに対して同じ関数を書き直したくありません。ありがとう。
確かに-関数を使用するスクリプトでは、次のようなコマンドを記述できます。
source function.sh
これは、コマンドが実行された時点でファイルにfunction.sh
の内容を含めることと同じです。 function.sh
は$PATH
のディレクトリの1つにある必要があることに注意してください。そうでない場合は、絶対パスを指定する必要があります。
はい、すべての機能を共通のファイルにローカライズできます。これはまさに私がすべてのユーティリティ関数で行うことです。私は単一のutility.shinc
すべてのプログラムで使用されているホームディレクトリ内:
. $HOME/utility.shinc
これは、現在のシェルのコンテキストでスクリプトを実行します。これは重要です。インクルードスクリプトを実行するだけでは、サブシェルで実行され、変更は現在のシェルに反映されません。
スクリプトのグループに対しても同じことができます。それが「製品」の一部である場合、すべてがローカライズされるように、すべてのスクリプトと含まれているスクリプトを1つのシェルディレクトリに配置する傾向があります。