나중에 사용할 수 있도록 몇 가지 명령을 기록하고 있는데 그 중 일부는 너무 길기 때문에 시각화를 위해 여러 줄에 기록한 다음 복사하여 붙여넣고 사용하고 싶습니다. 예를 들어:
날것의:
openssl pkcs12 -export -in intermediate/certs/lala-lira.cert.pem -inkey intermediate/private/lala-lira.key.pem -out intermediate/private/lala-lira.pfx
데모:
openssl pkcs12 -export
-in intermediate/certs/lala-lira.cert.pem
-inkey intermediate/private/lala-lira.key.pem
-out intermediate/private/lala-lira.pfx
문제는 데모 양식을 복사하여 붙여넣으면 각 줄이 별도의 독립적인 명령으로 해석된다는 것입니다.
답변1
마지막 줄을 제외한 모든 줄은 백슬래시로 끝납니다. 명령을 예로 들어 보겠습니다.
openssl pkcs12 -export \
-in intermediate/certs/lala-lira.cert.pem \
-inkey intermediate/private/lala-lira.key.pem \
-out intermediate/private/lala-lira.pfx
여기서 수행하는 작업은 줄 끝을 이스케이프하여 쉘이 이를 구분 없는 공백으로 처리하도록 하는 것입니다. 이스케이프 표시는 다음 문자에만 영향을 미치므로 다음 문자는~ 해야 하다줄의 끝이 되십시오. (이것은 후행 공백이 허용되지 않음을 의미합니다. 주의하세요!)
답변2
텍스트를 줄바꿈하고 백슬래시를 할당하는 함수(또는 셸 스크립트)를 만들 수 있습니다.
function wrapit { fmt -s -w 50 - | sed '$!s/$/ \\/'; }
이는 다음을 사용합니다.FMMT 도구텍스트를 50자로 줄 바꿈합니다(필요에 따라 조정). 또한 입력에 짧은 줄을 추가하지 않도록 fmt
( ) 분할 만 알려줍니다 . s
그런 다음 sed를 사용하여 마지막 줄을 제외한 모든 줄에 백슬래시를 추가합니다.
$
파일의 마지막 줄의 주소입니다.!
해당 행에 후속 명령을 적용하는 것을 의미합니다.아니요주어진 주소와 일치합니다(여기서는 마지막 줄을 제외한 모든 주소).s/$/ \\/
"줄 끝"($
)을 공백과 백슬래시로 대체합니다. 여기서 백슬래시는 궁극적으로 단일 백슬래시로 나타나도록 이스케이프되어야 합니다.
이 함수/스크립트에 텍스트를 파이프하거나 스크립트를 실행하고 텍스트를 입력한 다음 Control-D를 사용하여 텍스트를 끝냅니다.
echo "openssl pkcs12 -export -in intermediate/certs/lala-lira.cert.pem -inkey intermediate/private/lala-lira.key.pem -out intermediate/private/lala-lira.pfx" | wrapit
또는
$ wrapit
openssl pkcs12 -export -in intermediate/certs/lala-lira.cert.pem -inkey intermediate/private/lala-lira.key.pem -out intermediate/private/lala-lira.pfx
Control-D
이것은 간단한 스크립트입니다. 명령 옵션이나 따옴표를 이해하지 못하며 예제 입력을 다음과 같이 변환합니다.
openssl pkcs12 -export -in \
intermediate/certs/lala-lira.cert.pem -inkey \
intermediate/private/lala-lira.key.pem -out \
intermediate/private/lala-lira.pfx
그러나 여러 입력에 대해 스크립트 가능한 솔루션이 필요한 경우 일반적인 답변을 제공하고 싶습니다.