我在这里用这些变量做错了什么?
问题描述:
我试图根据我在某些页面编号上找到的字符串将ptftk分割为tempfile.pdf。那些pagenumbers在tempfile中。我在这里用这些变量做错了什么?
n=0
prefix1="startpoint"
prefix2="stoppoint"
while read p; do
echo $p > temp
`cat temp` = prefix1$n
echo $((p-1)) > temp
`cat temp` = prefix2$n
n=$((n+1));
done < tempfile
pdftk tempfile.pdf cat $startpoint0-$stoppoint1 output $1/01-0.pdf
pdftk tempfile.pdf cat $startpoint1-$stoppoint2 output $1/02-0.pdf
pdftk tempfile.pdf cat $startpoint2-end output $1/03-0.pdf
出于某种原因,我得到这样的错误:
/usr/local/bin/skapa_digital_akt: rad 16: 1: kommandot finns inte
/usr/local/bin/skapa_digital_akt: rad 18: 0: kommandot finns inte
/usr/local/bin/skapa_digital_akt: rad 16: 6: kommandot finns inte
/usr/local/bin/skapa_digital_akt: rad 18: 5: kommandot finns inte
/usr/local/bin/skapa_digital_akt: rad 16: 13: kommandot finns inte
/usr/local/bin/skapa_digital_akt: rad 18: 12: kommandot finns inte
Error: Unexpected range end; expected a page
number or legal keyword, here:
Exiting.
Errors encountered. No output created.
Done. Input errors, so no output created.
Error: Unexpected range end; expected a page
number or legal keyword, here:
Exiting.
Errors encountered. No output created.
Done. Input errors, so no output created.
Error: Input page numbers include 0 (zero)
The first PDF page is 1 (one)
Exiting.
Errors encountered. No output created.
Done. Input errors, so no output created.
显然变量起始点/ stoppoint设置错误。任何人都可以帮助我?
非常感谢!
/保罗
答
什么是
`cat temp` = prefix1$n
该怎么办?您应该知道:它从temp
中读取命令行并执行它。
如果临时包含1
(和n
为== 0
)一条线,那么执行的命令是:
1 = prefix10
你经常可以帮助自己对剧本的顶部插入set -x
或调用它调试脚本使用sh -x yourscript.sh
答
这工作:
n=0
while read p; do
echo $p > tempA$n
echo $((p-1)) > tempB$n
n=$((n+1));
done < tempfile
startpoint0=$(cat tempA0)
stoppoint1=$(cat tempB1)
startpoint1=$(cat tempA1)
stoppoint2=$(cat tempB2)
startpoint2=$(cat tempA2)
pdftk tempfile.pdf cat $startpoint0-$stoppoint1 output $1/01-0.pdf
pdftk tempfile.pdf cat $startpoint1-$stoppoint2 output $1/02-0.pdf
pdftk tempfile.pdf cat $startpoint2-end output $1/03-0.pdf