O utilitário base64
lê sua entrada a partir de um arquivo cujo nome é fornecido como um argumento ou da entrada padrão. Nunca lê sua entrada de um argumento de linha de comando. No seu caso, para decodificar uma string armazenada em uma variável, você deve fornecer a string na entrada padrão de base64
.
Se você estiver usando o Bash, você pode usar uma string aqui:
base64 -d <<< "$myImgStr" > image2.jpg
Se o seu shell não aceitar aqui, você sempre poderá usar:
echo "$myImgStr" | base64 -d > image2.jpg
(Observe o doublequotes em torno de "$myImgStr"
. Você deve sempre duplicar as expansões de variáveis, a menos que tenha uma boa razão para não fazê-lo.)