shell之从 Julia 程序执行 >> shell 运算符

Free-Thinker 阅读:12 2024-06-03 14:00:57 评论:0

我试图使用反引号从 Julia 内部附加一个文件

run(`cat file2 >> file1`) 

但这行不通。似乎 >> 运算符无法正确解释。有什么方法可以通过管道或其他技巧做到这一点吗?

请您参考如下方法:

从主要问题正文中不清楚您是一般尝试以编程方式执行此操作,还是只是尝试从 julia 中以交互方式发出 shell 命令REPL ...但你的标题表明它是后者; 如果是这种情况*,您可以通过简单地在 REPL 中键入 ; 并发出您的 shell 命令来进入 shell 模式

对于前一种情况,如果您必须使用run 命令附加到文件,则使用内置的管道 机制为此提供。阅读帮助文件,您将看到可以提供一个可选的 append 参数。例如

run(pipeline(`cat file1`; stdout="file2", append=true)); 
# or even 
run(pipeline(`cat`; stdin="file1", stdout="file2", append=true)); 

话虽如此,如果您通常以编程方式执行此操作,因为您对 file1 所做的所有操作都是从中读取的,您可能应该只是正常地读取和写入文件,而不是,并完全避免 shell 命令:

open("file1", "r") do f1;  
  open("file2", "a") do f2; write(f2, readstring(f1)); end 
end 

这是特定于 julia 的,更安全,独立于平台,并且信息量更大。


*:如果情况不是,您可能需要编辑问题的标题:)


标签:Shell
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号