我有一個環境變數,它被列印到一個檔案中,然后由我的程式讀取。當變數被寫入檔案時,它看起來像這樣:
-----BEGIN
,RSA
,PRIVATE
,KEY-----
,MIIEowIBAAKCAQEAtxPgpPqD1cZdoTeOMvOnqp0NkkCqcMsn8V4j9KrFWpPxiweu
,H1r69S2ssmuqtleLVKk2kwgTn6x AvcqgTBLsjnfpPmD2mBKvTqCvaBT2VXdxGiA
,dlp etc....
什么時候應該是這樣的:
-----BEGIN RSA PRIVATE KEY-----
MIIEowIBAAKCAQEAtxPgpPqD1cZdoTeOMvOnqp0NkkCqcMsn8V4j9KrFWpPxiweu
H1r69S2ssmuqtleLVKk2kwgTn6x AvcqgTBLsjnfpPmD2mBKvTqCvaBT2VXdxGiA
dlpJMJAvCwBsDnDRilSRoNja4DpF26bHSQePwZF1/4OqnF6GtvGcPPPENiJkjxr/ etc...
我的腳本命令如下所示:
- printf '%s\n', $PRIVATE_KEY > $CI_PROJECT_DIR/private.pem
我究竟做錯了什么?
uj5u.com熱心網友回復:
printf '%s\n' "$PRIVATE_KEY" > "$CI_PROJECT_DIR"/private.pem
參考"$PRIVATE_KEY"以防止它被分成單獨的單詞。根據經驗,始終參考變數擴展以防止意外破壞其值。養成一個好習慣。
此外,從 . 中洗掉尾隨逗號'%s\n',。Shell 腳本引數不是逗號分隔的。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/463659.html
