
Ich versuche, das Verzeichnis zu erhalten, in dem sich mein Skript befindet, indem ich Folgendes verwende:
scriptdir=`dirname $0`
aber das gibt mir den folgenden Fehler:
dirname: invalid option -- 'b'
Try `dirname --help' for more information.
und ich habe versucht, was sie empfohlen haben (also dirname --help
), und es hieß, Befehl nicht gefunden. Wie kann ich dieses Problem beheben?
Ich versuche, die Variable scriptdir zu verwenden, damit ich das folgende Java-Programm kompilieren kann:
java -mx800m -cp "$scriptdir/*" edu.stanford.nlp.parser.lexparser.LexicalizedParser -retainTmpSubcategories -outputFormat "typedDependencies" -outputFormatOptions "basicDependecies" edu/stanford/nlp/models/lexparser/englishPCFG.ser.gz ./sentences/100000.txt > ./parsedsentences/100000.txt
Antwort1
dirname -- "$0"
Der--(Bindestrich Bindestrich) verhindert dirname
die Verarbeitung von Optionen im Argument. Immer Anführungszeichen setzen, $0
wenn der Name Leerzeichen enthält.
Antwort2
verwenden Sie Anführungszeichen. Dies könnte Ihr Problem beheben.
scriptdir=`dirname -- "$0"`
Ich persönlich bevorzuge diese Notation in Bash-Skripten, aber sie ist nicht zwingend:
scriptdir="$(command dirname -- "${0}")"
BEARBEITEN:
Die Antwort finden Sie möglicherweise in den Antworten aufVollständiger Name und Pfad des Skripts $0 beim Aufruf nicht sichtbar.
BEARBEITEN 2:
Die richtige Antwort integriert.