在 中,启用zsh
该选项后,我可以将输出通过管道传输到两个不同的进程,即:multios
cat /dev/sda > sda.img | sha256sum > sda.img.sha256
dash
我怎样才能在ie中实现同样的目标/bin/sh
?
答案1
您可以使用tee
将流复制到文件并将结果通过管道传输,以便sha256sum
从标准输入读取并将其写入单独的文件。不过,从标准输入指示符读取-
是可选的
</dev/sda tee sda.img | sha256sum - > sda.img.sha256
这当然应该适用于任何最小的 shell,例如dash
.
zsh
实际上,这里比使用multios更有效,因为数据通过的管道更少。在这里,使用多操作系统方法,它被读取一次tee
,一次被sha256sum
写入两次,它被读取一次,一次被zsh的内部teeing进程(通过管道)读取一次,一次被写入一次,两次被内部teeing进程读取。 。tee
cat
sha256sum
cat
在支持进程替换( ) 的地方,ksh
例如在 中,您可以使用它bash
>(..)
zsh
< /dev/sda tee >(sha256sum > sda.img.sha256) > sda.img