scriptdir=`dirname $0`이 작동하지 않습니다

scriptdir=`dirname $0`이 작동하지 않습니다

다음을 사용하여 내 스크립트가 있는 디렉터리를 가져오려고 합니다.

scriptdir=`dirname $0`

하지만 이로 인해 다음과 같은 오류가 발생합니다.

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

그리고 그들이 권장하는 것(예: )을 시도했는데 dirname --help명령을 찾을 수 없다고 말했습니다. 이 문제를 어떻게 해결할 수 있나요?

다음 Java 프로그램을 컴파일할 수 있도록 scriptdir 변수를 사용하려고 합니다.

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:

정답을 통합했습니다.

관련 정보