如何用单个命令同时记录命令输入与输出至文件?
解决方法
最简洁的单个复合命令就能实现你的需求,直接把命令本身和执行结果一起输出到目标文件:
{ echo 'cat abc.txt'; cat abc.txt; } > finalOutput.txt
执行后finalOutput.txt里会先出现命令cat abc.txt,接着是它的输出Hello!。
补充说明
- 你之前尝试的
0>是重定向标准输入(stdin),但命令本身并不是从stdin读取的,所以这种方式完全不对;0>&1是把stdin重定向到stdout,同样和记录命令本身无关,自然达不到效果。 - 如果需要同时记录命令的错误输出(stderr),可以加上
2>&1:{ echo 'cat non_existent_file.txt'; cat non_existent_file.txt; } > finalOutput.txt 2>&1 - 如果你觉得大括号写法不够简洁,也可以用
&&连接两个命令(本质是命令组合):echo "cat abc.txt" > finalOutput.txt && cat abc.txt >> finalOutput.txt
内容的提问来源于stack exchange,提问作者Philip
相关产品推荐
相关产品推荐

