Je souhaite créer un script bash simple pour lancer un programme Java sous OS X. Les noms du fichier, le chemin du fichier et le dossier de travail immédiat contiennent tous des espaces. Quand je fais cela:OS X bash: dirname
#!/bin/sh
cd `dirname $0`
Je reçois
usage: dirname path
J'ai aussi essayé de mettre des citations dans toutes sortes d'endroits différents. L'exemple le plus élaboré étant
cd "`dirname \"$0\"`"
Rien n'a fonctionné. Je reçois des messages d'erreur ou ce message cryptique "usage: dirname path".
Quelles sont les autres méthodes qui pourraient fonctionner?
Edit: cela ne semble pas être un problème pour tout le monde, mais moi il doit juste être ma boîte. Je vais accepter mon propre message ci-dessous parce que c'est la seule solution qui a fonctionné pour ce problème spécifique. Cependant, je suis définitivement upvoting les solutions qui semblent fonctionner pour tout le monde et apprécie vraiment l'aide de tout le monde.
Quel est le rendement de 'echo $ 0'? dirname peut avoir un problème avec quelque chose de spécifique à propos de la valeur de $ 0.Avez-vous essayé d'exécuter ceci avec le script dans un répertoire différent? – fbrereto
Votre deuxième exemple fonctionne pour moi avec un répertoire de six niveaux de profondeur où tous les autres ancêtres ont au moins un espace dans son nom. – Chuck
déjà essayé de regarder la page de manuel dirname? –