端末からの入力が必要な場合は、これを試してください
lc=`echo -n "xxx_${yyy}_iOS" | base64`
-n
オプションは base64 コマンドに "\n" 文字を入力しません。
そのための Linux コマンドがあります:base64
base64 DSC_0251.JPG >DSC_0251.b64
結果を変数に代入するには
test=`base64 DSC_0251.JPG`
エンコード
Linux の場合
単一行の結果:
base64 -w 0 DSC_0251.JPG
HTML
の場合 :
echo "data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
ファイルとして:
base64 -w 0 DSC_0251.JPG > DSC_0251.JPG.base64
変数内:
IMAGE_BASE64="$(base64 -w 0 DSC_0251.JPG)"
HTML
の変数内 :
IMAGE_BASE64="data:image/jpeg;base64,$(base64 -w 0 DSC_0251.JPG)"
OSX の場合
OSX の場合 、base64
バイナリが異なり、パラメータが異なります。 OSX で使用する場合 、 -w 0
を削除する必要があります .
単一行の結果:
base64 DSC_0251.JPG
HTML
の場合 :
echo "data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
ファイルとして:
base64 DSC_0251.JPG > DSC_0251.JPG.base64
変数内:
IMAGE_BASE64="$(base64 DSC_0251.JPG)"
HTML
の変数内 :
IMAGE_BASE64="data:image/jpeg;base64,$(base64 DSC_0251.JPG)"
一般的な OSX/Linux
シェル関数として
@base64() {
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "example@unixlinux.online"
else
cat /dev/stdin | base64 "example@unixlinux.online"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "example@unixlinux.online"
else
cat /dev/stdin | base64 -w 0 "example@unixlinux.online"
fi
fi
}
# Usage
@base64 DSC_0251.JPG
cat DSC_0251.JPG | @base64
シェル スクリプトとして
base64.sh
を作成 次の内容のファイル:
#!/usr/bin/env bash
if [[ "${OSTYPE}" = darwin* ]]; then
# OSX
if [ -t 0 ]; then
base64 "example@unixlinux.online"
else
cat /dev/stdin | base64 "example@unixlinux.online"
fi
else
# Linux
if [ -t 0 ]; then
base64 -w 0 "example@unixlinux.online"
else
cat /dev/stdin | base64 -w 0 "example@unixlinux.online"
fi
fi
実行可能にします:
chmod a+x base64.sh
使い方:
./base64.sh DSC_0251.JPG
cat DSC_0251.JPG | ./base64.sh
デコード
読み取り可能なデータを取り戻す:
base64 -d DSC_0251.base64 > DSC_0251.JPG
cat
を使用する必要があります コンテンツを取得する ファイル名自体ではなく、「DSC_0251.JPG」という名前のファイルの。
test="$(cat DSC_0251.JPG | base64)"
ただし、base64
ファイル自体から読み取ることができます:
test=$( base64 DSC_0251.JPG )