에코 내부의 perl 명령 내부에 공백이 있는 파일 이름

에코 내부의 perl 명령 내부에 공백이 있는 파일 이름

다음 명령에서 공백이 포함된 파일 이름을 어떻게 지원합니까?

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

작동하지 않는 것 같은 다음을 시도했습니다.

  1. echo ... \"$filename\")
  2. echo '$(... "open..." "$filename")'
  3. 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"

관련 정보