在 OSX 上保存终端输出命令

hzl*_*rdo 4 mac terminal command-line osx-el-capitan macos

这是一个简单的问题,但找不到答案,我找到并尝试过tee output.txtsystem_profiler > output.txt但没有成功,他们保存空白文本文件。如何在 OSX El Capitan 上的终端中使用命令保存终端输出?

ljr*_*jrk 5

假设command是您要运行的命令,您可以使用以下命令将其输出通过管道传输到 output.txt 中:

$ command > output.txt
Run Code Online (Sandbox Code Playgroud)

或者

$ command | tee output.txt
Run Code Online (Sandbox Code Playgroud)

如果这没有问题,可能是因为输出不是打印在 上stdout而是打印在 上stderr。管道>是隐式书写,1>意思是“管道stdout到...”。
如果您也想通过管道输入stderr文件,可以使用

$ command >output.txt 2>&1
Run Code Online (Sandbox Code Playgroud)

这会将所有输出通过stderr管道传送到文件描述符1(= stdout),而文件描述符又通过管道传送到文本文件。