見つかったソリューションを実装しようとしています。ここ。しかし、同僚は、関数を.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
パス内のファイルに関数を定義しても何も起こりません。ログインスクリプトからファイルをインポートする必要があります。別のスクリプトを作成したい場合は、関数と同じ名前を指定して関数を完全に削除して、名前でスクリプトを呼び出すことができます。