Récupérer le chemin du fichier source de courant avec des poissons

StackOverflow https://stackoverflow.com/questions/2037447

  •  19-09-2019
  •  | 
  •  

Question

Dans un script shell de poisson, est-il possible d'obtenir le chemin où vit le script shell? En bash, vous pouvez utiliser la variable BASH_SOURCE pour le faire.

Était-ce utile?

La solution

Une façon est d'utiliser la commande statut .

par exemple.

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

-

Ah, désolé - à en juger par votre commentaire, j'ai mal lu la question. Je pensais que vous vouliez dire le chemin complet, au lieu du répertoire du script.

Vous pouvez simplement envoyer le résultat d'état dirname. Ce n'est pas une fonction de poisson intégrée, comme l'état est, mais le poisson a tendance à sous-traiter une grande partie de cette fonctionnalité car il peut de toute façon (voir « La loi du minimalisme », plus dans le poisson conception doc ). Je ne vois rien de mieux commandes dans la documentation pour cela, alors peut-être cela est aussi bon que nous pouvons obtenir pour l'instant?

Modification de l'exemple, modifier le contenu de show_filename.fish être:

dirname (status -f)

Maintenant, vous devriez obtenir:

~/tmp> fish show_filename.fish
/home/foo/tmp
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top