通过 Cygwin64 运行 shell 脚本时,出现错误(输出如下)。脚本的相关部分如下。有趣的是,如果我复制并粘贴回显的命令,它会毫无怨言地运行。那么,我做错了什么?
[worldwidewilly@SAL9000 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.
下面是脚本逻辑:
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."
该脚本已保存为带有 *nix 文件结尾的 UTF-8。这是在 Windows 7 上运行的 Cygwin64 的全新安装。
FWIW - 我有一些解决方法。如果我在单词 book 之后和单个撇号之前添加一个空格,则会出现上述错误。但是,DBLATEX_OPTS 中的 -T 会被标记为错误。
[worldwidewilly@SAL9000 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.
而且,再次,如果我复制回显的命令并从命令行运行它,它就可以工作。这一切都非常令人困惑。