我做一個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