2017-08-07 9 views
1

Wenn ich base64 versuchen kodieren eine Schriftart-Datei und Ausgabe der Inhalt in eine Textdatei wie folgt:Wie base64 Befehl mit CURL zu verwenden?

base64 myfont.woff2 > output.txt 

Es ist großartig gegeben funktioniert, dass die Schriftart lokal gespeichert ist. Allerdings, wenn ich versuche, die Schrift von einer Web-URL zu kräuseln und base64 die Ausgabe, die es in einem Bündel von Kauderwelsch führt zu der Datei, beispielsweise gespeichert werden:

#!/bin/bash 
declare -a arr=(
    "https://fonts.gstatic.com/s/opensans/v14/K88pR3goAWT7BTt32Z01mxJtnKITppOI_IvcXXDNrsc.woff2" 
) 

for i in "${arr[@]}" 
do 
    content="$(curl -s "$i")" 
    echo base64 "$content" > output.txt 
done 

Wie dies funktioniert zu bekommen?

Antwort

3

Sie können Rohr curl Ausgang base64:

for i in "${arr[@]}"; do 
    curl -s "$i" | base64 
done > output.txt 
1

Der base64 Befehl erwartet der Text als Eingabe decodiert werden, nicht als Argument. Sie können entweder Rohr locken, um es direkt:

curl -s "$url" | base64 

oder, wenn Sie die curl Ergebnisse in einer Variablen wie in der ursprünglichen Code aufgenommen haben, verwenden Sie einen Heredoc:

base64 <<<"$content"