scriptdir=`目錄名稱 $0` 不起作用

scriptdir=`目錄名稱 $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"

--(dash dash) 停止dirname處理參數中的任何選項。$0如果名稱中有空格,請務必引用。

答案2

使用引號。它可能會解決您的問題。

scriptdir=`dirname -- "$0"`

我個人更喜歡 bash 腳本中的這種表示法,但這不是強制性的:

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

編輯:

您可以在回覆中找到答案腳本全名和路徑 $0 呼叫時不可見

編輯2:

綜合正確答案。

相關內容