Cygwin64를 통해 쉘 스크립트를 실행할 때 오류가 발생합니다 (아래 출력). 스크립트의 관련 부분은 다음과 같습니다. 흥미로운 점은 에코 된 명령을 복사하여 붙여 넣으면 불만없이 실행된다는 것입니다. 그래서, 내가 제대로하지 못한 것은 무엇입니까?bash 쉘 스크립트 오류가 스크립트가 아닌 명령 행에서 작동합니다.
ASCIIDOC_OPTS="--asciidoc-opts='-a lang=en -v -b docbook -d book'"
DBLATEX_OPTS="--dblatex-opts='-V -T db2latex'"
echo "Generating dblatex PDF output via a2x"
cmd="a2x -v -f pdf -L ${ASCIIDOC_OPTS} ${DBLATEX_OPTS} $1.asciidoc"
echo $cmd
$cmd
echo "done."
스크립트가 UTF-8 * nix에서 스크립트 파일 엔딩으로 저장되었습니다 여기
[[email protected] resources]$ makebook MyBook
Generating dblatex PDF output via a2x
a2x -v -f pdf -L --asciidoc-opts='-a lang=en -v -b docbook -d book' --dblatex-opts='-V -T db2latex' MyBook.asciidoc
Usage: a2x [OPTIONS] SOURCE_FILE
a2x: error: option -d: invalid choice: "book'" (choose from 'article', 'manpage', 'book')
done.
스크립트 로직입니다. Windows 7에서 실행되는 Cygwin64를 새로 설치합니다.
FWIW - 해결 방법이 있습니다. 단어 책 뒤에 하나의 아포스트로피 앞에 공백을 추가하면 위의 오류가 발생합니다. 그러나 DBLATEX_OPTS의 -T에는 오류가있는 것으로 플래그가 지정됩니다.
[[email protected] resources]$ makebook MyBook
Generating dblatex PDF output via a2x
a2x -v -f pdf -L --asciidoc-opts='-a lang=en -v -b docbook -d book ' --dblatex-opts='-V -T db2latex' MyBook.asciidoc
Usage: a2x [OPTIONS] SOURCE_FILE
a2x: error: no such option: -T
done.
에코 된 명령을 복사하고 명령 줄에서 실행하면 다시 작동합니다. 이것은 모두 매우 혼란 스럽습니다.