以下脚本使用临时文件“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 shell 中引用变量的安全隐患”)。