我正在尝试创建一个名为 url2pdf 的 bash 函数:
wget -O "$1" | /System/Library/Printers/Libraries/convert | open -a Preview
但是,每当我尝试执行此操作时,我都会得到:
HTTP request sent, awaiting response... 200 OK
Length: unspecified [text/html]
Saving to: “STDOUT”
[ <=> ] 0 --.-K/s in 0s
Cannot write to “-” (Broken pipe).
所以我猜我的管道重定向有问题。有什么建议吗?
答案1
该convert
程序似乎不喜欢来自管道的 STDIN 流:
ian-cs-macbook-pro:temp ianc$ echo "Hello world" | /System/Library/Printers/Libraries/convert
Usage: convert [ options ]
Options:
...snipped...
尝试使用 TMPDIR:
function url2pdf {
HTML=$TMPDIR`basename $1`'.html'
PDF=`basename $1`'.pdf'
wget -O $HTML $1
/System/Library/Printers/Libraries/convert -f $HTML -o $PDF
rm -f $HTML
open -a Preview $PDF
}
这很粗糙,但确实有效。您可以根据自己的喜好进行调整,以决定是否将 PDF 保存在磁盘上。