8

フィッシュ シェル スクリプトで、シェル スクリプトが存在するパスを取得することは可能ですか? bash では、BASH_SOURCE 変数を使用してこれを行うことができます。

4

1 に答える 1

9

1つの方法は、statusコマンドを使用することです。

例えば。

~/tmp> echo status -f > show_filename.fish
~/tmp> fish show_filename.fish
/home/foo/tmp/show_filename.fish

-

ああ、ごめんなさい-あなたのコメントから判断すると、私は質問を読み間違えました。スクリプトのディレクトリではなく、完全修飾パスを意味していると思いました。

ステータス結果をdirnameに送信するだけで済みます。ステータスのように、これは魚に組み込まれている機能ではありませんが、魚はこの機能を可能な限り外部委託する傾向があります(魚のデザインドキュメントの「ミニマリズムの法則」を参照)。これについては、ドキュメントにこれ以上のコマンドが表示されないので、今のところ取得できるのと同じくらい良いのではないでしょうか。

例を修正して、show_filename.fishの内容を次のように変更します。

dirname (status -f)

今、あなたは得るべきです:

~/tmp> fish show_filename.fish
/home/foo/tmp
于 2010-12-10T08:59:47.287 に答える