【发布时间】:2017-07-16 01:00:39
【问题描述】:
我一直在尝试将命令输出到这样的文件:
echo `who | cut -d' ' -f1 | sort | uniq` > users.txt
但是users.txt的内容是一行。
但是,如果我只是执行这样的命令:
who | cut -d' ' -f1 | sort | uniq
输出多行。
如果我使用 echo 输出这样的命令:
echo `who | cut -d' ' -f1 | sort | uniq`
我在 1 行得到输出。
这里发生了什么?如何将此命令的输出写入多行文件?
非常感谢任何帮助。
编辑:
感谢几个cmets,我意识到我不需要回声,我可以这样输出:
who | cut -d' ' -f1 | sort | uniq > users.txt
【问题讨论】:
-
这并没有解决您的问题,但是如果您希望输出到文件,为什么还要麻烦
echo部分?只需删除反引号和回声。 -
为什么不直接做
who | cut -d' ' -f1 | sort | uniq >> users.txt? -
@EricRenouf Gee,我很笨!我认为它只适用于回声。非常感谢!
-
但是请注意,您可以通过引用您的命令替换
echo "$(who | cut -d' ' -f1 | sort | uniq)" > users.txt(将反引号替换为$()以允许代码格式化)来使您的原始版本工作。虽然不是实现您既定目的的最佳方式,但了解它的工作原理很有用,原因是引号可以防止发生分词。
标签: linux bash shell output echo