Ich bin ein Clojure Neuling.Wie akzeptiert man zusätzliche Argumente für eine Option in tools.cli?
Ich brauche mehrere Argumente für die Option -a
meiner cli app, wie:
java -jar app.jar -a 12 abc xyz
erste ist eine Zahl, und die beiden anderen haben Strings sein.
Mein Code ist:
["-a" "--add LINE TYPE ENTRY" "Add entry to specified line number of the menu"
:parse-fn #(split % #" ")
:validate [#(number? (Integer/parseInt (first %))) "ERROR: Invalid position"]
Aber ich beobachtete die %
-:parse-fn
Funktion übergeben nur das erste Argument enthält ein Vektor zu sein, dh [12]
die anderen Argumente als Wert aufgeführt sind Schlüssel :arguments
der von parse-opts
zurück Karte Nun
(1) gibt es eine Möglichkeit zu val idiate diese unverarbeiteten Argumente?
(2) Wie werde ich diese Argumente abrufen und verwenden?
Ich habe dies nicht getan gesehen. Du könntest den Weg der Weitergabe in einem Argument gehen (zB 'java ... -a" 12 abc xyz "' (vielleicht sogar ein besseres Trennzeichen als '' like zB '' '' '' '' ')) - oder Übergeben Sie das mit drei Argumenten (zB '- [lte]') - oder benutzen Sie tools.cli überhaupt nicht, wählen Sie das erste Argument als "Befehl" aus erlaubten aus und wenden Sie den Rest der Argumente darauf an. Aus einer einfachen Benutzerperspektive finde ich das sogar merkwürdig. Es kommt mir kein Unix-CLI in den Sinn, das mehrere Argumente für eine Ein-Buchstaben-Option hat. – cfrick