scriptdir=`dirname $0` 不起作用

scriptdir=`dirname $0` 不起作用

我正在尝试使用以下方法获取我的脚本所在的目录:

scriptdir=`dirname $0`

但这给了我以下错误:

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

我尝试了他们推荐的方法(即dirname --help),但它说未找到命令。我该如何解决这个问题?

我正在尝试使用 scriptdir 变量,以便可以编译以下 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

答案1

dirname -- "$0"

--(破折号破折号)停止dirname处理参数中的任何选项。$0如果名称中有空格,请始终使用引号。

答案2

使用引号。它可能会解决您的问题。

scriptdir=`dirname -- "$0"`

我个人更喜欢 Bash 脚本中的这种符号,但它不是强制性的:

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

编辑:

您可以在以下回复中找到答案脚本全名和路径$0在调用时不可见

编辑2:

整合了正确答案。

相关内容