将来の使用のためにいくつかのコマンドを文書化していますが、それらのいくつかは長すぎて、視覚化のために複数行で文書化し、次にそれらをコピーして貼り付けて使用したいと思います。例えば:
生:
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
ここで行っているのは、行末をエスケープすることです。これにより、シェルは非区切りの空白として扱います。エスケープマーカーは次の文字にのみ影響するため、次の文字必須は行末になります。 (つまり、末尾のスペースは許可されません。注意してください!)
テキストを折り返し、円記号を割り当てる関数(またはシェルスクリプト)を作成できます。
function wrapit { fmt -s -w 50 - | sed '$!s/$/ \\/'; }
これは fmt tool を使用して、テキストを50文字に折り返します(必要に応じて調整してください)。また、fmt
から(s
)への分割のみを指示するため、入力の短い行は結合されません。次に、sedを使用して、最後の行を除くすべての行に円記号を追加します。
$
はファイルの最後の行のアドレスです!
は、notが指定されたアドレスと一致する行(ここでは、最後の行を除くすべて)に後続のコマンドを適用することを意味します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
しかし、さまざまな入力に対してスクリプト化されたソリューションが必要な場合に備えて、一般的な回答を提示したいと思います。