scriptdir=`dirname $0` não funciona

scriptdir=`dirname $0` não funciona

Estou tentando obter o diretório onde meu script está usando:

scriptdir=`dirname $0`

mas isso me dá o seguinte erro:

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

e tentei o que eles recomendaram (ou seja dirname --help) e dizia comando não encontrado. Como posso resolver este problema?

Estou tentando usar a variável scriptdir para poder compilar o seguinte 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

Responder1

dirname -- "$0"

O--(traço traço) impede dirnameo processamento de qualquer opção no argumento. Sempre cite $0caso haja espaços no nome.

Responder2

use aspas. Isso pode resolver seu problema.

scriptdir=`dirname -- "$0"`

Pessoalmente, prefiro essa notação em scripts bash, mas não é obrigatória:

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

EDITAR:

Você pode encontrar a resposta nas respostas anome completo e caminho do script $0 não visíveis quando chamado.

EDITAR 2:

Integrou a resposta certa.

informação relacionada