scriptdir=`dirname $0` no funciona

scriptdir=`dirname $0` no funciona

Estoy intentando obtener el directorio donde se encuentra mi script usando:

scriptdir=`dirname $0`

pero esto me da el siguiente error:

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

y probé lo que recomendaron (es decir dirname --help) y decía comando no encontrado. ¿Como puedo solucionar este problema?

Estoy intentando utilizar la variable scriptdir para poder compilar el siguiente programa java:

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

Respuesta1

dirname -- "$0"

El--(guión guión) deja dirnamede procesar cualquier opción en el argumento. Cite siempre $0en caso de que haya espacios en el nombre.

Respuesta2

utilizar comillas. Puede solucionar su problema.

scriptdir=`dirname -- "$0"`

Personalmente prefiero esta notación en los scripts bash, pero no es obligatoria:

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

EDITAR:

Puedes encontrar la respuesta en las respuestas anombre completo del script y ruta $0 no visibles cuando se llama.

EDITAR 2:

Integró la respuesta correcta.

información relacionada