2016-07-05 5 views
1

Я пытаюсь разделить tempfile.pdf на pdftk в соответствии со строками, которые я нашел на определенных файлах. Эти 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 установлены неправильно. Кто-нибудь может мне помочь?

Большое спасибо!

/Paul

ответ

1

Что

`cat temp` = prefix1$n 

должен делать? Вы должны знать: он читает командную строку от temp и выполняет ее.

если температура содержит строку с 1n является == 0), то выполняется команда будет:

1 = prefix10 

Вы часто можете помочь себе отладки скриптов, вставив set -x поверх сценария или называя его используя sh -x yourscript.sh

0

Это сработало:

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 

 Смежные вопросы

  • Нет связанных вопросов^_^