我正在尝试通过在F#中编写小型控制台脚本来代替我编写shell脚本/批处理文件的常用方法来练习我的F#。我目前使用“fsi script.fsx [args]”运行它们。有没有办法可以将这些fsx文件与fsi关联起来,以便我可以直接运行它们,如“script.fsx [args]”?
答案 0 :(得分:8)
是的,这是可能的。
这里有两个关键:
您需要将要执行的应用程序绑定到“.fsx”扩展名。执行此操作的确切方法可能会在操作系统版本之间略有不同(我之前只通过直接编辑注册表来完成此操作,因此我无法在此处提供通用解决方案);确保要执行的命令包含脚本参数(如%*
),因此绑定注册表中的shell \ open \ command条目应如下所示
"c:\Program Files\FSharp-1.9.9.9\bin\fsi.exe" "@%1" %*
有关详细信息,请参阅Gradbot的回复。
答案 1 :(得分:4)
由于到目前为止还没有答案,我会尝试将我之前的评论变成一个更详细的答案。
我只是尝试为 *。fsx 文件创建一个标准的Windows关联,以便在 fsi.exe 中自动打开它们并且它没有任何问题 - 当你打开它时 fsx 文件,它运行F#Interactive并自动评估文件的内容。这对应于运行命令:
> fsi.exe test.fsx
但是,我认为通过使用Visual Studio中的F#Interactive来学习F#要容易得多。即使您没有许可证,也可以使用Visual Studio Shell with the free F# plugin。我认为SharpDevelop也提供类似的集成(但可能没有一些限制)。
最简单的方法是创建一个新的“F#脚本”(文件 - >新建 - >文件... ),然后开始编写一些代码(按照各种顺序) 。然后,您可以选择代码的某些部分,并通过持久化[Alt] + [Enter]
在F#Interactive窗口中对其进行评估。您首先需要打开F#Interactive窗口,可以使用[Ctrl] + [Alt] + [F]
完成,也可以在视图 - >中找到它。其他Windows 菜单项。
我认为大多数F#网络广播以这种方式使用F#Interactive,所以如果你看一些它们,你应该知道如何使用它。例如,在How Do I?或www.fsharp.net的F# videos at Channel 9个视频中查找。
答案 2 :(得分:2)
搜索“在ubuntu上执行F#脚本”会使您着陆。
要在Mac / Linux上执行.fsx脚本,请写fsharpi yourScript.fsx
,对于Windows用户请写:fsi yourScript.fsx
答案 3 :(得分:1)
Here's在Windows 7中设置关联。
答案 4 :(得分:1)
我知道这很旧但是...虽然我完全同意每个人建议进行基于 REPL 的开发,但如果您发现自己编写了一个很好的可重用脚本,那么这里是在 Linux 和 MacOS 上运行良好的脚本。将 *.fsx
脚本放在您的 ~/bin 文件夹或任何地方,然后执行与其他脚本一样的常见 shebang 技巧:
首先制作你的脚本
#!/usr/bin/env dotnet fsi
printfn $"1 + 1 = {1 + 1}"
使其可执行并运行它
chmod 755 foo.fsx
$ ./foo.fsx
1 + 1 = 2