
Как обеспечить поддержку имен файлов с пробелами в следующей команде?
echo "$(perl -MMIME::Base64 -e 'open F, shift; @lines=<F>; close F; print MIME::Base64::encode(join(q{}, @lines))' $filename)"
Я попробовал следующее, но это не сработало:
echo ... \"$filename\")
echo '$(... "open..." "$filename")'
echo $(...'open ... "$filename")
решение1
echo "$(perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename")"
Я предполагаю, echo
что это пример. Если нет, то это:
perl -MMIME::Base64 -0777 -pe '$_=MIME::Base64::encode$_' < "$filename"
было бы эквивалентно.
Обратите внимание, что в некоторых системах есть base64
команда:
base64 < "$filename"
Или, если openssl
установлено:
openssl base64 < "$filename"