擅长:python、mysql、java
<p>这不是Perl与其他所有人的比较;这是一个“使用Bash的<code><<<</code>构造”与“不做那个”的事情。虽然没有明确地记录(至少在ubuntuxenial的manpage中没有),但是<a href="https://unix.stackexchange.com/q/20157/11006">Bash appends a newline to herestrings (the ^{<cd1>} thing) when passing them to commands</a>。因此,使用<code><<<</code>调用的所有命令实际上都在编码<code>'ASDF1234asdf\n'</code>,而Perl(不是用herestring调用的)只编码<code>'ASDF1234asdf'</code>。不同的输入,不同的输出。在</p>
<p>为了将不带尾随换行符的字符串传递给命令的标准输入,请使用<code>printf</code>命令,例如:</p>
<pre><code>$ printf %s ASDF1234asdf | base64
QVNERjEyMzRhc2Rm
</code></pre>