2015-04-23 67 views
0

我正在開發一個腳本,用於下載文件,將其轉換爲base64並將代碼導出到變量。目前,我只能通過2個步驟完成此操作(這迫使我保存文件)。我如何直接下載和導出內容而不保存罰款......即一行?bash - 執行curl並將base64文件導出到變量

這是我在做什麼...

#!/bin/bash -x 

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

謝謝!

回答

1

您可以使用process substitution

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

或者像伊坦賴斯納在評論中指出,管道也能發揮作用:在

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

雖然進程替換結果傳遞到base64(根據平臺,可能是FIFO的名稱或命名文件描述符,如/dev/fd/63),流水線將其數據傳遞到base64通過stdin - 淨效應是相同的在這裏。

使用管道的優勢在於符合POSIX標準,而流程替代符合bash特定功能。

+0

標準管道也可以在這裏工作。 –

相關問題