为什么管道 pwd 和 echo 不起作用?

Fat*_*imi 2 command-line echo gnome-terminal pwd

我是 unix 的新手。我在 ubuntu 终端中输入了这个命令:

pwd | echo
Run Code Online (Sandbox Code Playgroud)

我希望看到pwdin terminal( /home/fatemeh/Documents/Code/test) 的输出,但输出只是一个空行

为什么会这样?

Dop*_*oti 6

echo对标准输入不做任何事情;它只解析它的参数。所以你正在有效地运行echo它,它本身输出一个空行,而标准输入被丢弃。

如果您想查看您尝试实现的行为,请使用旨在解析标准输入的工具,例如cat

$ pwd | cat
/home/username
Run Code Online (Sandbox Code Playgroud)

如果你真的想用来echo显示当前工作目录(或另一个命令的输出),你可以使用命令替换来为你做这个:

$ echo "Your shell is currently working in '$(pwd)'."
Your shell is currently working in '/home/username'.
Run Code Online (Sandbox Code Playgroud)