Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: Martina 13. 09. 2013, 10:30:38
-
Ahoj, poradí please někdo funkční řešení na tomto principu?
#!/bin/bash
getval()
{
VAR=$1;
return $VAR;
}
N=$(getval "10");
T=$(getval "Kč");
echo "${N}${T}"; # Očekávaný výsledek: 10Kč
exit 0
už vážně nevím jak to udělat..... Děkuji, M.
-
místo return dej echo
viz např. http://www.linuxjournal.com/content/return-values-bash-functions (http://www.linuxjournal.com/content/return-values-bash-functions)
-
místo return dej echo
viz např. http://www.linuxjournal.com/content/return-values-bash-functions (http://www.linuxjournal.com/content/return-values-bash-functions)
Jenže to se mi vypíše i na obrazovku, a to nechci! ;-)
-
jak bylo receno, zmen return na echo
P.
-
místo return dej echo
viz např. http://www.linuxjournal.com/content/return-values-bash-functions (http://www.linuxjournal.com/content/return-values-bash-functions)
Jenže to se mi vypíše i na obrazovku, a to nechci! ;-)
samotne echo uvnitr te funkce nic vypisovat nebude, IMHO.
Ted uz vis, ze funkce v bash mohou vracet pouze ciselne hodnoty - co takhle zmenit spis logiku skriptu, nez se snazit zmenit filozofii interpretu?
Dalsi moznosti je globalni promenna, pripadne asociativni pole, kde index bude ciselny a k nemu priradis nejaky string.
Bash neni klasicky programovaci jazyk a chtit v nem "programovat" neni moc efektivni. Na druhou stranu pro nektere veci je mnohem efektivnejsi nez klasicke programovani ve vyssich jazycich.
-
pokud chces v bash vracet z funkce neco jineho nez cislo, tak muze pres eval:
#!/bin/bash
getval()
{
VAR=$1;
eval $2=$VAR;
}
getval "10" navratova1
getval "Kc" navratova2
echo "${navratova1}${navratova2}"; # Očekávaný výsledek: 10Kč
exit 0