我是 unix 新手。我在 ubuntu 终端中输入了这个命令:
pwd | echo
我希望看到pwd
in terminal( /home/fatemeh/Documents/Code/test
) 的输出,但输出只是一个空行。
为什么会这样?
我是 unix 新手。我在 ubuntu 终端中输入了这个命令:
pwd | echo
我希望看到pwd
in terminal( /home/fatemeh/Documents/Code/test
) 的输出,但输出只是一个空行。
为什么会这样?
echo
对标准输入不做任何事情;它只解析它的参数。所以你正在有效地运行echo
它,它本身输出一个空行,标准输入被丢弃。如果您想查看您尝试实现的行为,请使用旨在解析标准输入的工具,例如
cat
:如果你真的想用它
echo
来显示当前工作目录(或另一个命令的输出),你可以使用命令替换来为你做这件事:如其他答案所述,
echo
不从 stdin 读取,因此不会打印pwd
. 万一你还不知道,pwd
打印它自己的输出,所以你只需要单独运行它来获得你想要的结果。如果您真的想为此使用 echo ,可以使用Command Substitution。这会将您的命令 (
pwd
)的输出echo
作为参数传递给。在这个例子中,这又不是必需的,因为pwd
它将输出它自己的......输出到标准输出。该
echo
命令不会从标准输入中读取,它会写入您告诉它写入的内容。在这种情况下,你没有告诉它写任何东西,所以它打印的只是一个换行符。pwd | echo
相当于只是运行echo
。如果你想使用管道,那么你需要使用一些从标准输入读取的命令(例如,
cat
):