我做一个clj脚本运行clojure如下。参数传递与bash的clojure
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main $1
问题是$ 1是脚本的名称,所以我无法通过此参数传递参数。
这些替代品可
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main $1 $2 $3 $4 $5
希望的参数的数量少于4,这可能工作,但我想应该有一个更好的解决了这一点。
比这更好的方法是什么?
我做一个clj脚本运行clojure如下。参数传递与bash的clojure
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main $1
问题是$ 1是脚本的名称,所以我无法通过此参数传递参数。
这些替代品可
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main $1 $2 $3 $4 $5
希望的参数的数量少于4,这可能工作,但我想应该有一个更好的解决了这一点。
比这更好的方法是什么?
您可以使用[email protected]
通过对你的脚本收到的所有CLI参数:
#!/bin/sh
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main [email protected]
如果你想省略一些初始参数,可以使用例如shift
,其下降的$1
的电流值并且将这个剩余参数,以便$1
假定的$2
旧值,$2
那的$3
等:
#!/bin/sh
# prints out the first CLI argument, then passes the rest on to clojure.main
echo $1
shift
java -cp $CLOJURE_JAR:$CLASSPATH clojure.main [email protected]
有关相关信息,请参见题为Special Parameters
在bash
“ s的manpage。
例如,如果你需要同时下降多次,“shift”也可以引起争论:例如,“shift 2”。 – 2010-08-20 03:50:08
看看clojure-contrib/launchers/bash/clj-env-dir: http://github.com/clojure/clojure-contrib/blob/master/launchers/bash/clj-env-dir – edbond 2010-08-20 14:26:39