我用F#2.0安裝了Mono,我想用我的F#腳本./
。我應該在Mac OS X中使用哪條shebang線?這個shebang行可以通用於Mac OS X 和 Linux嗎?哪個shebang應該用於Mac OS X中的F#腳本?
9
A
回答
7
所以,在@ mcandre的答案,它的工作原理是因爲most shells revert to bourne shell時,他們沒有找到一個家當。
因此,有#light
這既是有效的F#和Bourne shell的評論允許每個腳本環境,看看它理解。
但是裏面的腳本可以改進。當我們執行一個腳本時,添加--quiet
到--exec
似乎是多餘的,我們也希望所有參數都傳遞給腳本。更理想的版本將是exec fsharpi --exec $0 $*
,因此所有參數都將被傳遞,就像顯式地運行命令一樣。
#light
不是F#的唯一#
之前指令。預處理器定義也可以工作,並且可以直觀地瞭解正在發生的事情。將一個shell腳本放在#if run_with_bin_sh
和#endif
之間會對f#不可見,因爲run_with_bin_sh
不會被定義。
例FSX:
#if run_with_bin_sh
exec fsharpi --exec $0 $*
#endif
printfn "%A" fsi.CommandLineArgs
更新:真實家當支持諸如#!/usr/bin/env fsharpi --exec
已經加入到official Microsoft F# code base。所以它應該適用於未來版本的F#。
更新2:#!/usr/bin/env fsharpi --exec
適用於mac,但不適用於linux。 Linux需要是#!/usr/bin/fsharpi --exec
the incompatibilty is annoying.
如果你想要一個跨平臺的fsharp shebang。以下將起作用。
#!/bin/sh
#if run_with_bin_sh
exec fsharpi --exec $0 $*
#endif
10
相關問題
- 1. 在PackageMaker中使用腳本(Mac OS X)
- 2. 應該在哪裏.emscripten LLVM_ROOT和NODE_JS指向? (Mac OS X中)
- 3. 哪些控件可用於Mac OS X應用程序?
- 4. Mac OS X帶有哪些Java版本?
- 5. 適用於shell腳本的Mac OS X應用程序包不起作用
- 6. Mac OS X:我應該在哪裏存儲常用的應用程序數據?
- 7. Mac OS X中的兩個Perl版本?
- 8. Mac OS X Bash主機腳本
- 9. 爲Mac OS X轉換Linux shell腳本
- 10. Mac OS X中的syscall_sw.h在哪裏?
- 11. 我應該升級JAVA版本的Mac OS X的Android開發
- 12. 哪個Emacs適用於Mac OS X?...適用於Windows?適用於Linux?
- 13. 使用Mac OS X的Bash腳本中的SFTP命令
- 14. 從Mac OS X 10.6.7到最新版本的MAC OS X
- 15. Mac OS X:使用應用程序中的掛鉤執行腳本
- 16. .dll等同於Mac OS X
- 17. 用於Mac OS X的Fortran調試器
- 18. 用於Mac OS X的替代CADisplayLink
- 19. 適用於Mac OS X的openAL教程
- 20. 適用於Mac OS X的構建
- 21. 適用於Mac OS X的UIPopoverController?
- 22. 用於mac OS X 10.6.3的Xcode?
- 23. 適用於Mac OS X的MapKit?
- 24. Tkinter的扶養適用於Mac OS X
- 25. 適用於DirectShow的Mac OS X,GraphEdit
- 26. 適用於Mac OS X的AirPlay API
- 27. 適用於Mac OS X的ldconfig
- 28. 適用於Mac OS X的乳膠
- 29. 適用於Mac OS X的Pascal IDE
- 30. OS X上的Rubygame shebang問題
我認爲這可能會有問題,因爲'#'不是F#中的註釋 - 您可能會更好地編寫一個簡單的bash腳本。如果你在談論編譯腳本,對於Linux有一個內核補丁,使'/'工作 - 不知道有關的Mac –
@JohnPalmer是,缺乏對F#'#'註釋和其他語言,使shebangs更加困難,儘管並非不可能。 http://rosettacode.org/wiki/Multiline_shebang – mcandre
那是相當整齊 - 你可以有隱藏整個bash腳本這可能讓你做的東西便攜 –