linux - Shell 脚本无法将文件数据传递给 Shell 输入

标签 linux shell cat piping

cal April 2012 | cat > t | cat < t | more

为什么没有显示?为什么不显示

     April 2012       
Su Mo Tu We Th Fr Sa  
 1  2  3  4  5  6  7  
 8  9 10 11 12 13 14  
15 16 17 18 19 20 21  
22 23 24 25 26 27 28  
29 30  

最佳答案

| (匿名管道)将第一个进程的标准输出(1)与第二个进程的标准输入(0)连接起来。将输出重定向到一个文件后,就没有标准输出了,所以没有什么可以通过管道传输的。另外,cat | cat < file确实没有意义,它有两个输入连接到标准输入(至少对于 bash,重定向稍后出现并且“wins”:echo uiae | cat <somefile 将输出 somefile 的内容)

如果要显示命令的输出,同时将其写入文件,请使用 tee二进制。它写入文件,但仍写入标准输出

cal April 2012 | tee t | more
cat t # content of the above `cal` command

关于linux - Shell 脚本无法将文件数据传递给 Shell 输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10029746/

相关文章:

linux - 向所有容器公开端口,而不仅仅是主机

c++ - 我如何将 C++ 和 Python 与 SWIG 集成

shell - 如何将太大的 .text 文件合并为一个?

c - linux猫: No such file or directory

linux - 当 src 文件不存在时避免 cat 命令出错

linux - 自动重新创建许多不同的链接到重命名的目录或文件

linux - 编写一个 bash 脚本,将变量写入另一个文件的行尾

perl - 如何使用Net::OpenSSH安全地写入远程文件

perl - 根据当前文件的内容从 awk 搜索/读取另一个文件,是否可能?

bash - 我们如何根据 unix 中的给定日期获取工作日