Domanda

In uno script di shell di pesce, è possibile ottenere il percorso in cui risiede lo script di shell? In bash, è possibile utilizzare la variabile BASH_SOURCE per fare questo.

È stato utile?

Soluzione

Un modo è quello di usare il comando stato .

ad es.

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

-

Ah, scusate - a giudicare dai suoi commenti, ho letto male la domanda. Ho pensato che si intende il percorso completo, invece di directory dello script.

Si può solo inviare il risultato di stato per dirname. Non è una funzione incorporata di pesce, come lo stato è, ma pesce tende ad esternalizzare come gran parte di questa funzionalità in quanto si può in ogni caso (vedi "La legge del minimalismo", sopra il pesce disegno doc ). Non riesco a vedere niente di meglio i comandi nella documentazione di questo, così forse questo è buono come si può ottenere per ora?

La modifica l'esempio, modificare il contenuto della show_filename.fish essere:

dirname (status -f)

Ora si dovrebbe ottenere:

~/tmp> fish show_filename.fish
/home/foo/tmp
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top