2010-01-10 5 views

Répondre

9

Une façon consiste à utiliser la commande status.

par ex.

~/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 de l'état à dirname. Ce n'est pas une fonction intégrée du poisson, comme le statut est, mais le poisson tend à externaliser autant de cette fonctionnalité que possible (voir "La loi du minimalisme", dans le poisson design doc). Je ne vois pas de meilleures commandes dans les docs pour ça, donc c'est peut-être aussi bon que nous pouvons l'obtenir pour l'instant?

modifiant 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 
+0

Ceci est assez proche. Existe-t-il une méthode poisson pur pour analyser la chaîne /home/foo/tmp/show_filename.fish pour obtenir/home/foo/tmp? –

+0

Parfait! C'est juste ce que je voulais. –

+0

'cd (dirname (status -f)); et pwd' donne le chemin absolu, que vous exécutiez le script dans le répertoire courant. – Ezbob

Questions connexes