我正在尝试学习脚本并发现了这篇文章从 epub 文件中提取目录,这给了我我需要的部分解决方案,但是当我测试它时,出现了错误error: Extra content at the end of the document
。
一点背景知识:我有 2 个 epub 文件:1.epub
和2.epub
.我分别测试了每个文件,它工作得很好(从每个 epub 中获取了目录),但是当我尝试使用 测试这两个文件时do
,出现了上述错误。
我正在学习脚本,不确定我是否在某个地方犯了错误。任何人都可以指出我的错误是什么?
ps:我的脚本
#! /usr/bin/bash
EPUB_LIST="1.epub 2.epub"
for f in "$EPUB_LIST"
do
echo "$f:"
unzip -p "$f" OEBPS/toc.ncx |
xml2 |
sed -n -e 's:^/ncx/navMap/navPoint/navLabel/text=: :p'
echo
done
答案1
你的脚本的编写方式,for
循环只有一要迭代的东西是一个名为“1.epub 2.epub”的文件名(可能不存在)。这不是两个文件名的列表,而是一个字符串。
EPUB_LIST 应该是一个数组。例如
#!/bin/bash
EPUB_LIST=(1.epub 2.epub)
for f in "${EPUB_LIST[@]}"; do
echo $f:
unzip -p "$f" OEBPS/toc.ncx |
xml2 |
sed -n -e 's:^/ncx/navMap/navPoint/navLabel/text=: :p'
echo
done