2013-08-07 12 views
7

Un formato tipico per argomenti della riga di comando è:Come formattare riga di comando Argomento coppie di valori chiave

myApp --myArg=myValue 

Cosa succede se voglio passare in una serie di coppie di valori chiave attraverso la linea di comando? Qualcosa di simile:

myApp --myList={arg1=val1;arg2=val2;arg3=val3...} 

Dal there seems to be no standard for this sort of thing, qualcuno può fornire esempi di utilità ben utilizzati che hanno questo tipo di input argomento della linea di comando? Ho sfogliato alcune pagine man ma non ne ho trovato.

Modifica: Mi chiedo sia come deve essere formattato l'input che come potrebbe essere il testo della guida.

risposta

5

Penso che in gran parte dipende da come si analizzano gli argomenti nel programma.

Ecco alcuni esempi che i programmi accettano più valori di coppie valore-chiave.

uomo php:

--define foo[=bar] 
    -d foo[=bar] Define INI entry foo with value bar 

uomo git:

-c <name>=<value> 
     Pass a configuration parameter to the command. The value given will 
     override values from configuration files. The <name> is expected in 
     the same format as listed by git config (subkeys separated by 
     dots). 

Per entrambi, si può passare più o -d-c argomenti ai programmi che vi dà la capacità di fornire un elenco di chiave- coppie di valori ai programmi.

IMO, non è un grosso problema avere il proprio stile di accettare liste di coppie chiave-valore per il proprio programma purché sia ​​funzionante ed è ben documentato. :)

P.S .: Penso che questa domanda sia più appropriata essere posizionata su Programmers Stack Exchange piuttosto che su SO. Vedi here e here.

2

Se l'applicazione ha bisogno di tanti argomenti, vorrei usare un file di configurazione invece di trasmetterli a riga di comando:

myApp --config=file.cnf

Questo approccio ha i seguenti vantaggi:

  • flessibilità - puoi avere un gruppo di configurazioni preparate per invocazioni diverse e usarle semplicemente,
  • senza problemi con le citazioni - è sempre doloroso se gli argomenti della riga di comando hanno spazi, doppio qu otes, <,>, o altri caratteri speciali,
  • semplicità: si controlla il formato del file di configurazione, può essere ad esempio INI, JSON, XML ecc. È facile crearlo e facilmente analizzarlo come riga di comando dell'analisi - - se non più semplice,
  • sicurezza - se qualsiasi argomento può essere sensibile, non è visibile dagli strumenti che visualizzano gli argomenti della riga di comando.