【问题标题】:Using F# as replacement for Linux shell scripting使用 F# 替代 Linux shell 脚本
【发布时间】:2019-11-13 10:54:55
【问题描述】:

在学习了 f# 之后,我还想用 f# 作为 shell (bash,sh) 脚本的替代品。 有没有人有为此目的使用 f# 的经验?

是否存在具有类似功能的 f# Linux 系统库?:

  • ismountpoint(路径)
  • 进程列表
  • 杀死进程
  • 其他系统接口函数

【问题讨论】:

  • 从 F# 脚本调用 PowerShell 函数的选项怎么样?

标签: linux shell scripting f#


【解决方案1】:

据我所知,Linux 没有特定的库,但您可以使用 System.Diagnostics 来获取进程并杀死(小心):

let main args =
    let procs = System.Diagnostics.Process.GetProcesses()
    for proc in procs do
        printfn "%i: %s" proc.Id proc.ProcessName
        proc.Kill() |> ignore
    0

【讨论】:

  • 一些系统api函数在Linux和Windows中都存在,所以这些都会起作用。对于缺少的部分,我将不得不使用 .net Process.Start() 围绕 Linux 系统命令(可执行程序,如 mountpoint)编写包装器。最好是在 Linux 系统 api 库上用 C 语言编写一个 .net 库,但这相当复杂。
猜你喜欢
  • 2017-10-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-07
  • 1970-01-01
相关资源
最近更新 更多