为何执行date | echo命令无法输出日期?求解决及原因说明
问题解决与原因说明
正确命令写法
有两种常用方式可以实现你想要的输出:
- 使用命令替换嵌入日期输出:
echo "Today is date($(date +%d/%m/%Y))"
这里$(date +%d/%m/%Y)会执行date命令并将其输出直接替换到字符串中,echo就能把完整内容打印出来。
- 通过读取管道输入拼接输出:
date +%d/%m/%Y | read d && echo "Today is date($d)"
这个写法里,read命令会从管道中接收date的输出并存储到变量d中,之后再用echo拼接成目标字符串。
原命令失效的原因
你写的date | echo "Today is"逻辑有误:管道的作用是把前一个命令的标准输出传递给后一个命令的标准输入,但echo命令的工作逻辑是仅输出你传入的参数,它不会主动读取标准输入的内容。因此date命令的输出被直接丢弃,最终只打印了你指定的Today is。
内容的提问来源于stack exchange,提问作者Sri venkat Chennu
相关产品推荐
相关产品推荐

