我正在开发一个脚本,用于下载文件,将其转换为base64,并将代码导出为变量。目前,我只能在两个步骤中完成这个任务(这迫使我保存文件)。如何在不保存罚款的情况下直接下载和导出内容.也就是一条线?
这就是我要做的..。
#!/bin/bash -x
curl -o top10.jpg "http://www.somesite.com/top10.jpg"
top10=$( base64 top10.jpg)
谢谢!
发布于 2015-04-23 02:06:49
您可以使用过程替代
top10=$(base64 <(curl "http://www.somesite.com/top10.jpg"))
或者,正如Etan Reisner在评论中指出的那样,一条管道也会起作用:
top10=$(curl "http://www.somesite.com/top10.jpg" | base64)
虽然进程替换会导致文件名被传递给base64
( FIFO的名称或命名的文件描述符(如/dev/fd/63
),这取决于平台),但管道通过stdin将其数据传递给base64
--这里的效果是相同的。
使用管道的优点是符合POSIX的,而进程替换是bash
-specific特性。
https://stackoverflow.com/questions/29812323
复制相似问题