在 Julia 中检索外部命令输出

Emi*_*ile 4 julia

系统命令 'stty size' 返回两个整数,它们给出了当前终端的维度。Julia 如何执行此命令并在两个整数变量中返回输出。

fre*_*kre 8

您可以创建管道并重定向stdout到缓冲区,然后解析字符串:

julia> io = IOBuffer();

julia> cmd = pipeline(`stty size`; stdout=io, stderr=devnull);

julia> run(cmd);

julia> str = String(take!(io))
"60 211\n"

julia> a, b = parse.(Int, split(strip(str)));

julia> a
60

julia> b
211
Run Code Online (Sandbox Code Playgroud)

注意:通常可以直接read使用命令,例如read(`stty size`), String),但是对于这个特定命令它似乎不起作用,我认为这是因为在这种情况下没有设置适当的 tty):

julia> read(`stty size`, String)
stty: 'standard input': Inappropriate ioctl for device
Run Code Online (Sandbox Code Playgroud)