Aktuálne čítam tento riadok z nášho konfiguračného skriptu configure.ac. Mám na Googli vyhľadávanie, ale nemôžem ho nájsť.
Predpokladám, že je shell shell, ale čo to znamená, najmä pre --
?
set -- "$progname" "$@"
odpovede:
2 pre odpoveď č. 1Na --
je bash zabudovaný aj niečo veľa unix príkazy použiť na označenie na konci príkaz Možnosti.Takže ak máte niečo ako:
grep -- -v file
na -v
vyhral "t vykladať grep možnosť, ale parameter (takže môžete grep pre -v
).
Na $@
Zoznam všetky parametre, ktoré prechádzajú do skriptu (čo predpokladám set
príkaz je súčasťou).
Na --
zabezpečuje akejkoľvek možnosti prešiel v ako súčasť skriptu vyhral "t dostať interpretovať ako možnosti pre set
, ale ako možnosti pre príkaz označovaný $progname
variabilné.
0 pre odpoveď č. 2
z help set
:
-- Assign any remaining arguments to the positional parameters. If there are no remaining arguments, the positional parameters are unset.
Dôvodom pre --
je zabezpečiť, že aj keď "$progname"
alebo "$@"
obsahovať čiarky, že sa nemôže vykladať ako možnosti príkazového riadka.
set
zmení pozičných parametrov, ktoré je uložené v $@
. Takže v tomto prípade sa pridá "$progname"
na začiatku pozičných parametrov prijatý skript.