2009-06-19 9 views

答えて

51

確かに - あなたは機能を使用するスクリプトで、あなたはコマンドがある時点でファイル内function.shの内容を含むと同じです

source function.sh 

のようなコマンドを書くことができます走るfunction.sh$PATHのディレクトリの1つにある必要があります。そうでない場合は、絶対パスを指定する必要があります。

+3

あなたのPATHのどこにでも置くことができます。 bashがposixモードの場合、現在のディレクトリでは表示されません。これはすべてmanページで説明されています。 – camh

+0

本当に、私はそれが他のものと混ざり合っていました。 –

+0

'function.sh'にもいくつかのコードがあります。 'source function.sh'もコードを実行しますか? – user1527227

9

はい、すべての機能を共通ファイル(または複数のファイル)にローカライズすることができます。これはまさに私のすべてのユーティリティ機能でやっていることです。現在のシェルのコンテキストでスクリプトを実行し

. $HOME/utility.shinc 

:私はすべての私のプログラムで使われている私のホームディレクトリに単一utility.shincを持っています。これは重要です。単にインクルードスクリプトを実行すると、それはサブシェルで実行され、変更は現在のシェルに反映されません。

スクリプトのグループに対しても同じことができます。それが「製品」の一部であれば、すべてのスクリプトとすべてのスクリプトを単一のシェルディレクトリに入れて、すべてがローカライズされていることを確認する傾向があります。

-2

はい...できます! ソースファンクション名をスクリプトに追加します。 #!/ bin/bashの後にソースfunction_nameを追加すると、インポートした関数タスクを実行した後、現在のスクリプトタスクを実行するので、変数eg.VAR = $(funtion_name)を作成することをお勧めします。スクリプト内のどこにでも。 ありがとう..あなたのためにその仕事を願ってください:)

+0

8年前に投稿された回答をなぜコピーしていますか? –

+0

わかりやすくするために、私は前の方を簡単に投稿しました。 –

関連する問題