스크립팅을 배우려고 하다가 이 기사를 발견했습니다.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