scriptdir=`dirname $0` not working

I am trying to get the directory where my script is in by using:

scriptdir=`dirname $0`

but this gives me the following error:

dirname: invalid option -- 'b'
Try `dirname --help' for more information.

and I tried what they recommended (i.e dirname --help) and it said command not found. How can I fix this problem?

I am trying to use the scriptdir variable so I can compile the following java program:

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
0

2 Answers

dirname -- "$0"

The -- (dash dash) stops dirname from processing any options in the argument. Always quote $0 in case there are spaces in the name.

use quotes. It may fix your issue.

scriptdir=`dirname -- "$0"`

I personnaly prefer this notation in bash scripts, but it is not mandatory:

scriptdir="$(command dirname -- "${0}")"

EDIT:

You may find the answer in the replies to script full name and path $0 not visible when called.

EDIT 2:

Integraded the right answer.

3

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like