bash - 执行 curl 并将 base64 文件导出到变量

bash - execute curl and export base64 file to variable

我正在开发一个脚本,用于下载文件、将其转换为 base64 并将代码导出到变量。目前我只能分两步完成(这迫使我保存文件)。如何在不保存罚款的情况下直接下载和导出内容......即在一行中?

这就是我正在做的...

#!/bin/bash  -x 

curl -o top10.jpg "http://www.somesite.com/top10.jpg"
top10=$( base64 top10.jpg)

谢谢!

您可以使用 process substitution:

top10=$(base64 <(curl "http://www.somesite.com/top10.jpg"))

或者,正如 Etan Reisner 在评论中指出的那样,管道也可以工作:

top10=$(curl "http://www.somesite.com/top10.jpg" | base64)

虽然进程替换导致 filename 被传递给 base64(FIFO 的名称或命名的文件描述符,例如 /dev/fd/63 ,取决于平台),管道通过 stdin 将其数据传递给 base64 - 此处的净效果相同。

使用管道的优点是 POSIX 兼容,而进程替换是 bash 特定的功能。