如何在 Nim lang 中获取终端上的内容

How to get what is on the terminal in Nim lang

如何将终端(控制台)上的内容作为字符串存储在 Nim 中?

例如,假设我的控制台显示如下:

   Success: Execution finished
   Success: All tests passed
(base) piero@Somebodys-MacBook-Pro Tests % 

我想将其作为字符串存储到变量中。
我怎样才能做到这一点?

在bash中,可以这样实现:

ls -ltr > ./output.txt

您可以使用 std/osprocexecCmdExstartProcess 前者运行命令,returns (stdout, exitcode) 后者允许您在 运行:

时与进程交互
import std/[streams, osproc]
# For the startProcess variant
let myProc = startProcess("ls", args = ["-ltr"], options = {poUsePath})
discard myProc.waitForExit() # Force the program to block until done, not needed if have other computation
let myOutput = myProc.outputstream.readAll
myProc.close() # Free Resources

# For execShellEx variant
let (output, _) = execCmdEx("ls -ltr")
assert output.len == myOutput.len # Just for showcase