我正在尝试使用以下方法获取我的脚本所在的目录:
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:
整合了正确答案。