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