2010-01-10 14 views

Respuesta

9

Una forma es usar el comando status.

por ejemplo.

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

-

Ah, lo siento - a juzgar por su comentario, leí mal la pregunta. Pensé que te referías a la ruta completa, en lugar del directorio del script.

Puede enviar el resultado de estado a dirname. No es una función incorporada de los peces, como lo es el estado, pero el pez tiende a subcontratar la mayor cantidad posible de esta funcionalidad (ver "La ley del minimalismo", más adelante en el pez design doc). No puedo ver nada mejores comandos en los documentos para esto, así que tal vez esto es tan bueno como podemos obtener por ahora?

que modifica el ejemplo, cambiar el contenido de show_filename.fish ser:

dirname (status -f) 

Ahora usted debe conseguir:

~/tmp> fish show_filename.fish 
/home/foo/tmp 
+0

Esto es bastante estrecha. ¿Hay una forma de pez puro de analizar la cadena /home/foo/tmp/show_filename.fish para obtener/home/foo/tmp? –

+0

¡Perfecto! Eso es justo lo que quería. –

+0

'cd (dirname (status -f)); y pwd' proporciona la ruta absoluta independientemente de si ejecuta el script en el directorio actual. – Ezbob

Cuestiones relacionadas