Nabídka

Zobrazit příspěvky

Zde lze prohlédnout všech příspěvky uživatele. Jsou zde vidět pouze příspěvky z oblastí, do kterých máte přístup.

Nabídka Zobrazit příspěvky

Příspěvky - filip.z

#1
Ahoj,

chci se zeptat ohledně bashe a předávání proměnných funkcím přes poziční parametry.

Moje blíže nespecifikovaná funkce ( funkce_1 ) je volána s několika parametry, z nichž některý může být i hvězdička.
V takové případě musím při volání této funkce hvězdičku obalit apostrofy, uvozovkami či předsadit zpětným lomítkem.

Tedy např.:


funkce_1 prvni_argument \* treti_argument


Potud je vše v pořádku.

Pak ale následuje další funkce ( funkce_2 ) která zavolá funkci_1 pro každý svůj argument.

Tedy:


funkce_2 () {

  while [ $# "= 0 ]; do

    funkce_1 $1
    shift

  done

}


A tady nastává problém:

Zde je příklad volání funkce_2 se dvěma způsoby zadání argumentů, z nichž ani jeden nedělá to, co bych potřeboval:


funkce_2 "prvni_argument * druhy_argument" "prvni_argument \* treti_argument"


Funkce_2 zavolá pro svůj první parametr funkci_1 s argumenty : prvni_argument, místo hvězdičky jména souborů aktuálního adresáře a treti_argument.

Jenže já tam chci tu hvězdičku.
Domníval jsem se, že pokud před ni dám lomítko, že tam hvězdička zůstane - viz druhý argument funkce_2.
Zůstala, jenže i s lomítkem. Totéž i pro apostrofy a uvozovky. A já bych rád právě a jenom hvězdičku.

Pokud někdo pochopíte můj problém, budu rád, pokud mi sdělíte svůj názor, případně vysvětlíte kde je problém nebo co chápu špatně.
Díky.