/bin/sh: 1: 구문 오류: basename을 사용할 때 인용 문자열이 끝나지 않았습니다.

/bin/sh: 1: 구문 오류: basename을 사용할 때 인용 문자열이 끝나지 않았습니다.

코드 예: my PWD = /aa/bb/cc/dd

dir= `dirname "$(PWD)"`
output = `basename "${dir}"`

dir 변수가 올바르게 출력됩니다./aa/bb/cc

원하는 출력 변수:cc

오류가 발생했습니다./bin/sh: 1: Syntax error: Unterminated quoted string

저는 다양한 인용 조합과 다음 제안 솔루션과 같은 다른 것들을 시도해 보았습니다.https://stackoverflow.com/questions/22401091/bash-variable-substitution-vs-dirname-and-basename/22402242그리고https://unix.stackexchange.com/questions/253524/dirname-and-basename-vs-parameter-expansion

답변1

아래 코드는 나를 위해 작동합니다.

dir1=`dirname "$PWD"`
output=`basename "$dir1"`

답변2

대신에 "$(PWD)"당신은 원할 것입니다 "${PWD}". 전자는 PWD 명령을 실행하려고 시도하고 후자는 PWD 변수의 값으로 확장됩니다.

관련 정보