在 bash 脚本中向 PDF 文件添加属性时避免使用临时文件

在 bash 脚本中向 PDF 文件添加属性时避免使用临时文件

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

相关内容