Se hai bisogno di input dal terminale, prova questo
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
l'opzione non inserirà il carattere "\n" nel comando base64.
C'è un comando Linux per questo:base64
base64 DSC_0251.JPG >DSC_0251.b64
Per assegnare il risultato alla variabile utilizzare
test=`base64 DSC_0251.JPG`
Codifica
Su Linux
Risultato riga singola:
base64 -w 0 DSC_0251.JPG
Per HTML
:
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Come file:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
Nella variabile:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
Nella variabile per HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
Su OSX
Su OSX , il base64
binario è diverso e i parametri sono diversi. Se vuoi usarlo su OSX , dovresti rimuovere -w 0
.
Risultato riga singola:
base64 DSC_0251.JPG
Per HTML
:
echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
Come file:
base64 DSC_0251.JPG > DSC_0251.JPG.base64
Nella variabile:
IMAGE_BASE64="$(base64 DSC_0251.JPG)"
Nella variabile per HTML
:
IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
OSX/Linux generico
Come funzione shell
@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
Come script shell
Crea base64.sh
file con il seguente contenuto:
#!/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
Rendilo eseguibile:
chmod a+x base64.sh
Utilizzo:
./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh
Decodifica
Ottieni dati leggibili:
base64 -d DSC_0251.base64 > DSC_0251.JPG
Devi usare cat
per ottenere i contenuti del file denominato 'DSC_0251.JPG', piuttosto che il nome del file stesso.
test="$(cat DSC_0251.JPG | base64)"
Tuttavia, base64
può leggere dal file stesso:
test=$( base64 DSC_0251.JPG )