다음 스크립트는 임시 파일 "data.txt"를 사용하고 이를 재사용하기 전에 여기에 일부 콘텐츠를 추가합니다. (실제로 PDF에 일부 메타데이터를 추가했습니다.)
#!/bin/bash
PDFTK="/app/bin/pdftk"
#PDFTK="pdftk"
$PDFTK $1.pdf dump_data output data.txt
cat >> data.txt << EOF
InfoBegin
InfoKey: Myproperty
InfoValue: Myvalue
EOF
$PDFTK $1.pdf update_info data.txt output $1-$2.pdf
dump_data 및 update_info 모두 표준 출력에서 쓰거나 읽을 수 있습니다(man pdftk 참조).
bash-gurus: 파일을 생성하지 않고 코드를 다시 작성하는 방법은 무엇입니까?
pdftk-gurus: 더 좋은 방법이 있나요?다음에 추가키/값 쌍?
고마워요, 버스터.
답변1
이것이 사용되므로 bash
프로세스 대체를 사용할 수 있습니다.
"$PDFTK" "$1.pdf" update_info <( "$PDFTK" "$1.pdf" dump_data output; cat <<EOF
InfoBegin
InfoKey: Myproperty
InfoValue: Myvalue
EOF
) output "$1-$2.pdf"
pdftk
유틸리티 의 경우 인수는 첫 번째 호출의 출력 과 여기에 있는 문서의 내용이 <( ... )
포함된 파일로 처리됩니다 .pdftk
또한 변수를 인용해야 합니다("bash/POSIX 쉘에서 변수를 인용하는 것을 잊어버리는 보안 위험").