【发布时间】:2011-03-08 01:19:06
【问题描述】:
目标:生成一个以./script.clj 运行时运行-main 的Clojure 脚本。
我得到的最接近的是
#!/bin/bash
#(comment
exec clj -m `basename $0 .clj` ${1+"$@"}
exit
#)
(defn -main [args]
(println args))
但是 Clojure 不允许在多行 cmets 中使用非 Lisp 代码,而且 Clojure 没有 Common Lisps 的 #| ... |# 语法。
【问题讨论】:
-
出于好奇,为什么
#!/usr/bin/clj -m不起作用? -
仍然看不出这与您最近的问题stackoverflow.com/questions/5224548/… 有何不同,它本身就是stackoverflow.com/questions/973106/… 的副本。布赖恩的非常彻底的回应有什么不适合你的地方吗?
-
首先,Brian 的反应是完全没有反应。仅仅因为某事不惯用并不意味着它应该被避免。其次,Brian 对多线 shebang 只字未提。
-
实际上,如果某些东西不是惯用的,则有两种可能性。第一种可能性是你是一个不知名的天才,他发现了一些非常新的和重要的东西,它将改变人们对编程语言的看法。第二个是你错过了一些关键概念,并且正在做适得其反或更糟糕的事情。我会让你猜猜这两个中哪一个更有可能。
-
Shebang 并不新鲜,但它们对于编写带有命令行界面的程序很有用。
标签: clojure multiline main comments shebang