Nomes de arquivos com espaços dentro do comando perl dentro do echo

Nomes de arquivos com espaços dentro do comando perl dentro do echo

Como posso oferecer suporte a nomes de arquivos com espaços no comando a seguir?

echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"

Eu tentei o seguinte que não pareceu funcionar:

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. echo $(...'open ... "$filename")

Responder1

echo "$(perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename")"

Presumo echoque seja um exemplo aqui. Se não, isto:

perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename"

seria equivalente.

Observe que alguns sistemas possuem um base64comando:

base64 < "$filename"

Ou se opensslestiver instalado:

openssl base64 < "$filename"

informação relacionada