Wenn Sie Eingaben vom Terminal benötigen, versuchen Sie dies
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
Die Option gibt kein "\n"-Zeichen in den base64-Befehl ein.
Dafür gibt es einen Linux-Befehl:base64
base64 DSC_0251.JPG >DSC_0251.b64
Um das Ergebnis einer Variablen zuzuweisen, verwenden Sie
test=`base64 DSC_0251.JPG`
Codieren
Unter Linux
Einzeiliges Ergebnis:
base64 -w 0 DSC_0251.JPG
Für HTML
:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Als Datei:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
In Variable:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
In Variable für HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Auf OSX
Auf OSX , die base64
binär ist anders, und die Parameter sind anders. Wenn Sie es unter OSX verwenden möchten , sollten Sie -w 0
entfernen .
Einzeiliges Ergebnis:
base64 DSC_0251.JPG
Für HTML
:
echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
Als Datei:
base64 DSC_0251.JPG > DSC_0251.JPG.base64
In Variable:
IMAGE_BASE64="$(base64 DSC_0251.JPG)"
In Variable für HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
Generisches OSX/Linux
Als Shell-Funktion
@base64() {
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
}
# Usage
@base64 DSC_0251.JPG
cat DSC_0251.JPG | @base64
Als Shell-Skript
Erstellen Sie base64.sh
Datei mit folgendem Inhalt:
#!/usr/bin/env bash
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "[email protected]"
else
cat /dev/stdin | base64 "[email protected]"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "[email protected]"
else
cat /dev/stdin | base64 -w 0 "[email protected]"
fi
fi
Ausführbar machen:
chmod a+x base64.sh
Verwendung:
./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh
Decodieren
Erhalten Sie lesbare Daten zurück:
base64 -d DSC_0251.base64 > DSC_0251.JPG
Sie müssen cat
verwenden um den Inhalt abzurufen der Datei mit dem Namen 'DSC_0251.JPG' und nicht der Dateiname selbst.
test="$(cat DSC_0251.JPG | base64)"
Allerdings base64
aus der Datei selbst lesen kann:
test=$( base64 DSC_0251.JPG )