GNU/Linux >> Linux Esercitazione >  >> Linux

Qual è il pacchetto più standard, getopt o getopts (con una s)?

which è lo strumento sbagliato. getopts di solito è anche un builtin:

Dal getopts influisce sull'ambiente di esecuzione della shell corrente, è generalmente fornito come componente integrato regolare della shell.

~ for sh in dash ksh bash zsh; do "$sh" -c 'printf "%s in %s\n" "$(type getopts)" "$0"'; done
getopts is a shell builtin in dash
getopts is a shell builtin in ksh
getopts is a shell builtin in bash
getopts is a shell builtin in zsh

Se stai usando uno script di shell, puoi tranquillamente fare affidamento su getopts . Potrebbero esserci altri motivi per favorire l'uno o l'altro, ma getopts è standard .

Vedi anche:Perché non usare "quale"? Cosa usare allora?


Anch'io preferirei getopts oltre getopt per i seguenti motivi:

getopt Contro

  1. Utilità esterna
  2. Impossibile gestire stringhe di argomenti vuote o argomenti con spazi bianchi incorporati nella versione tradizionale

getopts Pro

  1. Funziona in qualsiasi shell POSIX ed è portatile
  2. Funziona bene con -a -b così come -ab

Linux
  1. Fai calcoli nella shell Linux con GNU bc

  2. Navigazione nella shell Bash con pushd e popd

  3. Su quale shell sto correndo?

  4. Quale comando nella shell sh di Linux/UNIX restituisce la mia directory corrente?

  5. du -h con più cifre decimali

Come interrogare le informazioni sui pacchetti con il gestore pacchetti rpm

Come utilizzare il comando RPM (con esempi)

Che cos'è la shell in Linux?

Impossibile rinominare un file il cui nome inizia con un trattino

Quali numeri di segnale funzionano con il comando kill?

Chiarimento relativo al comportamento dello script della shell insieme alla pipe