Quiero crear un script bash simple para iniciar un programa Java en OS X. Todos los nombres del archivo, la ruta del archivo y la carpeta de trabajo inmediata contienen espacios. Cuando hago esto:OS X bash: dirname
#!/bin/sh
cd `dirname $0`
me sale
usage: dirname path
También he intentado poner comillas en todo tipo de lugares diferentes. El ejemplo más elaborado es
cd "`dirname \"$0\"`"
Nada ha funcionado. Recibo mensajes de error o el mensaje críptico "use: dirname path".
¿Qué otros métodos podrían funcionar?
Editar: esto no parece ser un problema para nadie más que yo por lo que debe ser mi cuadro. Voy a aceptar mi propia publicación a continuación porque es la única solución que funcionó para este problema específico. Sin embargo, definitivamente estoy promocionando las soluciones que parecen funcionar para todos los demás y realmente aprecio la ayuda de todos.
¿Qué significa 'echo $ 0' yield? dirname podría tener un problema con algo específico sobre el valor de $ 0.¿Has intentado ejecutar esto con el script en un directorio diferente? – fbrereto
Su segundo ejemplo funciona para mí con un directorio de seis niveles de profundidad donde cada antecesor tiene al menos un espacio en su nombre. – Chuck
alguna vez intente ver la página de manual de dirname? –