1
Vývoj / Bash a vícenásobné předávání proměnných
« kdy: 11. 02. 2013, 16:48:24 »
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ř.:
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:
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 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.
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ř.:
Kód: [Vybrat]
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:
Kód: [Vybrat]
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:
Kód: [Vybrat]
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.