Dateinamen mit Leerzeichen innerhalb von Perl-Befehlen innerhalb von Echo

Dateinamen mit Leerzeichen innerhalb von Perl-Befehlen innerhalb von Echo

Wie unterstütze ich Dateinamen mit Leerzeichen im folgenden Befehl?

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

Ich habe Folgendes versucht, was nicht zu funktionieren schien:

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

Antwort1

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

Ich gehe davon aus, echodass dies ein Beispiel ist. Wenn nicht, dann dies:

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

wäre gleichwertig.

Beachten Sie, dass einige Systeme einen base64Befehl haben:

base64 < "$filename"

Oder wenn opensslinstalliert ist:

openssl base64 < "$filename"

verwandte Informationen