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

2

Como eu suporto nomes de arquivos com espaços no seguinte comando?

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 parece funcionar:

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. echo $(...'open ... "$filename")
por forthrin 26.08.2018 / 14:39

1 resposta

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

Eu assumo que echo é um exemplo aqui. Se não, isso:

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

seria equivalente.

Observe que alguns sistemas têm um comando base64 :

base64 < "$filename"

Ou se openssl estiver instalado:

openssl base64 < "$filename"
    
por 26.08.2018 / 15:00

Tags