Jea*_*lus 78 shell io-redirection
为什么命令md5sum <<< 'ddd'
(输出:)是d6d88f2e50080b9602da53dac1102762 -正确的,而md5sum << 'ddd'不是正确的?
什么<<<意思?
chi*_*rlu 57
将<<<启动“这里字符串”:该字符串膨胀并送到程序的标准输入。(在你的情况下,没有太多的扩展发生。)它相当于:
echo ddd | md5sum
Run Code Online (Sandbox Code Playgroud)
另一方面,<<启动一个 here 文档。以下所有行(直到包含标记的行)ddd将构成程序的输入。(您应该使用不太可能出现在您的数据中的标记。)您可以像这样实现与上面相同的效果:
md5sum <<END
ddd
END
Run Code Online (Sandbox Code Playgroud)
<<END和之间有一个区别<<'END':如果没有引号,here 文档中的任何变量、转义序列等都将照常展开。
Gil*_*il' 38
<<<引入一个here字符串:后面的字符串<<<作为输入传递给命令。这起源于 Byron Rakitzisrc为 Unix实现的(Plan 9 shell),也存在于 zsh、ksh93、mksh、yash 和 bash 中。
<<介绍一个here文档:shell脚本的后续行作为输入传递给命令,后面的字符串<<是终止符。此处的文档适用于所有 Bourne 风格的 shell(Bourne、POSIX、ash、bash、ksh、zsh 等)、C 风格的 shell(csh、tcsh)以及从 Plan 9 shell 派生的 shell(rc、es、akanga) .