GNU/Linux >> Znalost Linux >  >> Linux

Který je standardnější balíček, getopt nebo getopts (s s)?

which je špatný nástroj. getopts je obvykle také vestavěný:

Od getopts ovlivňuje aktuální prostředí spouštění shellu, je obecně poskytován jako běžný vestavěný 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

Pokud používáte shellový skript, můžete se bezpečně spolehnout na getopts . Mohou existovat jiné důvody pro upřednostnění jednoho nebo druhého, ale getopts je standardní .

Viz také:Proč nepoužít „který“? Co tedy použít?


Také bych preferoval getopts více než getopt z následujících důvodů:

getopt Nevýhody

  1. Externí nástroj
  2. V tradiční verzi nelze zpracovat prázdný řetězec argumentů nebo argumenty s vloženými mezerami

getopts Pro

  1. Funguje v jakémkoli prostředí POSIX a je přenosný
  2. Funguje dobře s -a -b stejně jako -ab

Linux
  1. Přizpůsobení prostředí Bash

  2. Který Shell Interpreter spouští skript s No Shebang?

  3. Na jakém Shellu běžím?

  1. Gartner Rings v novém roce s technickou prognózou 2015

  2. Jak přejmenuji soubory s mezerami pomocí prostředí Linux?

  3. Který příkaz v shellu Linux/UNIX sh vrátí můj aktuální adresář?

  1. Počítejte v linuxovém shellu s GNU bc

  2. du -h s více desetinnými místy

  3. Jak odstranit všechny balíčky s DNF, na kterých žádný jiný balíček nezávisí