スクリプトエクスポート機能

スクリプトエクスポート機能

見つかったソリューションを実装しようとしています。ここ。しかし、同僚は、関数を.bash_profileまたは.bashrcファイルに直接追加するのではなく、カスタムスクリプトを独自のファイルに配置し、/usr/binにソフトリンクすることを提案しました。これを行い、スクリプトを実行可能にしましたが、うまくいかないようです。これらの機能をエクスポートする必要があると思いますが、どうすればよいかわかりません。

カスタムスクリプト関数をパスにエクスポートするにはどうすればよいですか?たとえば、次のようになります。したがって、他のコマンドのように実行できます。

編集#1:

私が見つけたこれ(そしてそれを試しましたが)まだ動作していないようです。今私が何をしているのかわかりません...

ベストアンサー1

ここでは全く異なる2つのことが働いています。シェルスクリプトは直接実行できる実行ファイルなので、ファイルを作成すると/usr/bin/foo手動で物を入れないでください。しかし、何が起こっても)実行することができ、foo次のように実行されます。

$ cat /usr/bin/foo
#!/bin/bash
echo One

$ foo
One

関数は名前で実行できますが、最初に定義する必要があります。これは、関数をシェルに直接入力するか、コマンドを使用してその関数sourceを含むファイルをインポートするときに.発生します。

$ function bar() {echo Two;}

$ bar
Two

$ cat functions.sh
function baz() {echo Three;}

$ baz
command not found: baz

$ . functions.sh

$ baz
Three

パス内のファイルに関数を定義しても何も起こりません。ログインスクリプトからファイルをインポートする必要があります。別のスクリプトを作成したい場合は、関数と同じ名前を指定して関数を完全に削除して、名前でスクリプトを呼び出すことができます。

おすすめ記事