Quali sono le differenze tra “-” e “-” nei comandi?


Risposte:


15

È una questione di convenzione. I programmi standard POSIX di solito hanno solo opzioni a carattere singolo e sono tutti prefissati con un singolo trattino. Le versioni più lunghe sono un miglioramento GNU per chiarezza, per quanto ne so, e di solito sono precedute da doppi trattini. Puoi vederlo nelle librerie e nei programmi usati per analizzare le opzioni - getopte gnu-getoptrispettivamente. I programmi non GNU e non conformi a POSIX possono fare qualcos'altro del tutto. Nota che non puoi davvero essere sicuro che la forma lunga di un argomento possa essere la stessa da programma a programma. -fdi solito significa --force, ma non con apt-get install(malinteso comune). -vpuò significare versione - di solito, o --verbose, e così via. Controllare le pagine man o altra documentazione per essere sicuri. Dai anche un'occhiata aArticolo di Wikipedia su getopt . Tutto ciò precede Linux di un decennio o più.

ddè un esempio di un programma di utilità standard POSIX che non ha alcuna opzione di un trattino a tutti . findè il classico esempio di utility POSIX standard che ha opzioni di parole con trattini singoli - quasi tutte findle opzioni sono lunghe più caratteri. pssupporta più stili di opzioni:

This version of ps accepts several kinds of options:

1   UNIX options, which may be grouped and must be preceded by a dash.
2   BSD options, which may be grouped and must not be used with a dash.
3   GNU long options, which are preceded by two dashes.

GNUtar supporta anche stili di opzioni multiple.

A titolo di utilizzo, preferisci le lunghe opzioni negli script se puoi essere sicuro che gli script verranno eseguiti in ambienti compatibili - il miglioramento della chiarezza è una benedizione durante il debug. Per la portabilità, sono preferite le opzioni brevi.


Davvero una bella risposta. Grazie.
Peng Zhang,

4

Di solito - le opzioni possono essere concatenate insieme, come pacman -Syuessere equivalenti a pacman -S -y -u, e - le opzioni generalmente accettano un parametro come in./configure --prefix=/usr

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.