私にはいくつかの環境変数を生成するいくつかのbashスクリプトが苦労しています。私は.travis.ymlファイルでそれを使用しています。YAMLファイルで使用されるBash特殊文字
私の暗号化キーは、次のようになります。ターミナルで
someRandomCharacters withNewLine
私は三つの可能性をチェックします。
echo "someRandomCharacters
withNewLine" | openssl enc -aes-128-cbc -a -salt -pass pass:SomePassword -base64 -d
と
echo "someRandomCharacters\nWithNewLine" | openssl enc -aes-128-cbc -a -salt -pass pass:SomePassword -base64 -d
私に正しい出力が得られます。
echo "someRandomCharactersWithNewLine" | openssl enc -aes-128-cbc -a -salt -pass pass:SomePassword -base64 -d
この1つは上記のこれまでのところは良いerror reading input file
を返します - それはそのように動作しますなぜ私は理解しています。私は、上記のいずれかのオプションを入力しようとすると、しかし - そのような例:
- SOME_ENV=`echo "someRandomCharacters\nWithNewLines" | openssl enc -aes 128-cbc -a -salt -pass pass:SomePassword -base64 -d`
にtravis.yml、2つの最後オプションはerror reading input file
を返し、最初のものが原因全体のビルドをクラッシュします不正確に.yamlの構文です。
私はここにSTO上の例に見られるような「\ n」はなどの特殊文字で、たとえば、より多くの+の上にこれら三つのいずれかを使用しようとしました。それらのいずれかがerror reading input file
を返し、いずれも返されず、SOME_ENV
がトラビスに復号化されました。そのための解決策はありますか? BASHとYAMLの私の貧しい経験は、明らかな間違いを見て私をブロックするかもしれませんか?
あなたのすべてのコマンドを削除しました。無効なデータを投稿し、データが無効である理由を尋ねています。これは理由を説明するのが難しい。 [MCVE](https://stackoverflow.com/help/mcve)の作成を検討してください。たとえば、 'U2FsdGVkX1821xiZpgtUK7OIbGrHzGCPbN + bJ1WYKmg ='を使用して、あなたの偽のパスワードが "My data"にデコードされると、あなたの改行をどこにでも置くことができます。 '' bash 'はしませんが '' dash'は '\ n'を展開するためですが、' openssl'はb64データの途中で改行を必要としないため、作成した例は矛盾しています。 –
あなたは私のすべてのコマンドが常にこのエラーを印刷するということを何を意味するのか説明してください。 私の製作例が矛盾しているとはどういう意味ですか?私はTerminalで実際の価値観やアウトプットを横並びにチェックしていましたが、その例が適切であるとは確信しています。私はスクリーンショットを提供するだろうが、それはポイントを逃すだろう。 – Drwalcore
私はあなたのポストからコマンドを端末にコピー&ペーストすれば失敗する(実際の値は含まれていないので)。あなたの本当の価値観を「左右に」走らせずに、あなたが快適に共有できる価値を生み出し、それらを掲示してください。例えば、これは端末に直接コピー・ペーストできるコマンドです: 'echo" U2FsdGVkX19EB + D8no9 + 9bnl4dE5H2WbOUSvsGZjK7s = "| openssl enc -aes-128-cbc -a -salt -pass pass:MyPassword -base64 -d' –