Ich möchte ein einfaches Bash-Skript erstellen, um ein Java-Programm auf OS X zu starten. Die Namen der Datei, der Dateipfad und der unmittelbare Arbeitsordner enthalten alle Leerzeichen. Wenn ich dies tun:OS X Bash: Verzeichnisname
#!/bin/sh
cd `dirname $0`
ich
usage: dirname path
Ich habe auch versucht Zitate in allen Arten von verschiedenen Orten setzen. Das aufwendigste Beispiel ist
cd "`dirname \"$0\"`"
Nichts hat funktioniert. Ich erhalte entweder Fehlermeldungen oder die kryptische Nachricht "usage: dirname path".
Was sind andere Methoden, die funktionieren könnten?
Edit: scheint dies kein Problem für alle, aber ich zu sein, so dass es nur muss meine Box sein. Ich werde meinen eigenen Beitrag unten akzeptieren, weil es die einzige Lösung ist, die für dieses spezielle Problem funktioniert hat. Aber ich stimme definitiv den Lösungen zu, die für alle anderen funktionieren und die Hilfe von allen wirklich zu schätzen wissen.
Was ergibt 'echo $ 0'? dirname hat möglicherweise ein Problem mit etwas Spezifischem über den Wert von $ 0.Haben Sie versucht, das Skript in einem anderen Verzeichnis auszuführen? – fbrereto
Ihr zweites Beispiel funktioniert für mich mit einem sechs Ebenen tiefen Verzeichnis, in dem jeder andere Vorfahr mindestens ein Leerzeichen in seinem Namen hat. – Chuck
jemals versuchen, auf die manpage von dirname zu schauen? –