如何在 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/osproc
的 execCmdEx
或 startProcess
前者运行命令,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
如何将终端(控制台)上的内容作为字符串存储在 Nim 中?
例如,假设我的控制台显示如下:
Success: Execution finished
Success: All tests passed
(base) piero@Somebodys-MacBook-Pro Tests %
我想将其作为字符串存储到变量中。
我怎样才能做到这一点?
在bash中,可以这样实现:
ls -ltr > ./output.txt
您可以使用 std/osproc
的 execCmdEx
或 startProcess
前者运行命令,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