linux - 即使循环指向输出文件,echo 命令也会显示在屏幕上

标签 linux bash ssh

我正在尝试获取每个单独行项目的 md5,并将每个 md5 转储到下一个文件 (.md5) 的一行中。下面的脚本将所有内容回显到屏幕上。如何将 echo 输出重定向到 .md5 文件。

more email/test | 
while 
read line; 
md5=`md5sum $line | awk '{ print $1 }'`
do echo -n $md5; 
done < .md5

最佳答案

使用bash

尝试:

while IFS= read -r line;
do
    md5sum $line | awk '{ print $1 }'
done <email/test >.md5

使用awk

bash 循环是不必要的:

awk '{ "md5sum " $0 | getline; print $1}' email/test >.md5

关于linux - 即使循环指向输出文件,echo 命令也会显示在屏幕上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28422970/

相关文章:

c++ - 安装 pHash 库时对 `fftw_init_threads' 的 undefined reference

linux - 确定 linux 系统上每个唯一的进程所有者

javascript - 如何创建在 Linux 终端中运行的 Javascript 应用程序?

linux - 操作优先级

bash - 如何在bash中替换文件中出现的特定行

ssh - AWS EC2 公共(public) IP 与私有(private) IP

shell - 将参数传递给 SSH 客户端以执行带参数的 ForceCommand

amazon-web-services - 如何通过 Nat 网关 ssh 进入私有(private)子网中的实例?

c - 如何识别 linux 系统调用 unshare(CLONE_NEWNET) 中的性能瓶颈

linux - 在shell脚本中将文件从两台机器移动到四台机器